Преобразовать Dapper IDictionary в класс? - PullRequest
0 голосов
/ 16 января 2019

Возможно ли преобразовать IDictionary в класс?

Мой IDictionary выглядит так

{{DapperRow,   
 Date = '9/25/2014 12:00:00 AM',    
 UserId = '123456',    
 User = 'Timothy'    
}}

мой класс

public class MyClass
{
    public DateTime Date {get; set;}
    public string User {get; set;}
    public int UserId {get; set;}
    public virtual someModel {get; set;}    
}

1 Ответ

0 голосов
/ 16 января 2019

Чтобы преобразовать предоставленный вами словарь в указанный вами класс, вы можете просто добавить конструктор в класс модели, чтобы прочитать значения словаря.

public class MyClass
{
    public DateTime Date { get; set; }
    public string User { get; set; }
    public int UserId { get; set; }

    public MyClass(IDictionary<string, object> data)
    {
        Date = DateTime.Parse(data["Date"].ToString());
        User = data["User"].ToString();
        UserId = int.Parse(data["UserId"].ToString());
    }
}

Но Panagiotis прав: в этой ситуации вы должны воспользоваться преимуществом dapper, чтобы автоматически отобразить данные для ваших моделей. Их readme невероятно полезны, если вам нужно выяснить, как это работает или как выполнять сложные сопоставления.

...