如何使用c#dictionary在dapper中Mapbank中的json?

aydmsdu9  于 2021-06-24  发布在  Mysql
关注(0)|答案(3)|浏览(340)

我有一个mysql数据库和一个json列,其中存储的项目如下:

[{"key":"value"},{"key2","value2"},...}

如何处理这个问题并将其加载到c字典中?从字符串转换到字典时出错
型号示例:

public class Person
{
  string name;
  Dictionary<string, string> itens;
}
tyg4sfes

tyg4sfes1#

Dictionary<string, string> dir = new Dictionary<string, string>();

                    string splitOn = "value";

                    dir = cnn.Query<string, string, KeyValuePair<string, string>>("YOUR_SP", (s, i) => new KeyValuePair<string, string>(s, i), null, null, false, splitOn, null, null)
        .ToDictionary(kv => kv.Key, kv => kv.Value);
x33g5p2x

x33g5p2x2#

必须创建自定义处理程序。我已经就那个问题写了详细的文章。
https://medium.com/dapper-net/custom-type-handling-4b447b97c620
https://medium.com/dapper-net/one-to-many-mapping-with-dapper-55ae6a65cfd4
github上也提供了示例:
https://github.com/yorek/dapper-samples
我已经将SQLServer用作rdbms,但所有内容都应按原样应用于mysql

eimct9ow

eimct9ow3#

你需要先选择它。dapper不支持这种开箱即用的方式。然后可以使用newtonsoft.json(nuget包)并使用它的反序列化程序,如下所示:

myPerson.itens = JsonConvert.DeserializeObject<Dictionary<string, string>>(json);

参考文献:https://www.newtonsoft.com/json/help/html/deserializedictionary.htm

相关问题