Как сопоставить JSON из банка в Dapper, используя словарь C #? - PullRequest
0 голосов
/ 26 июня 2018

У меня есть база данных MySQL, и у меня есть столбец JSON, в котором хранятся элементы следующим образом:

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

Как мне справиться с этим и загрузить в словарь C #? Я получаю сообщение об ошибке при преобразовании строки в словарь

Пример модели:

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

Ответы [ 3 ]

0 голосов
/ 26 июня 2018
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);
0 голосов
/ 28 июня 2018

Вы должны создать пользовательский обработчик. Я написал подробные статьи на эту тему.

Образцы также доступны на GitHub:

https://github.com/yorek/dapper-samples

Я использовал SQL Server в качестве СУБД, но все должно применяться как и к MySQL

0 голосов
/ 26 июня 2018

Вы должны сначала выбрать его. Dapper не поддерживает это из коробки . Тогда вы можете использовать Newtonsoft.JSON ( NuGet-Package ) и использовать его десериализатор так:

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

Ссылка: https://www.newtonsoft.com/json/help/html/DeserializeDictionary.htm

...