2015-08-13 1 views
0

У меня есть таблица, которая выглядит следующим образом:Щеголеватые: Multi-Mapping с повторяющимися именами столбцов

ID ERR1 ERR2 ERR3 
---- ---- ---- ---- 
05A2 A001 B223 C212 
06B3 B392 C234 D234 
... 

Я хотел бы отобразить его на объекты, которые выглядят следующим образом:

public class Entry 
{ 
    public string Id { get; set; } 
    public List<BpcError> Errors { get; set; } 

    public Entry() 
    { 
     Errors = new List<BpcError>(); 
    } 
} 

public class BpcError 
{ 
    public string ErrorCode { get; set; } 
    // More properties and methods to follow 
} 

Как может Я делаю это?

ответ

1

Вот как:

string sql = "SELECT ID, " 
    + "ERR1 AS ErrorCode, " 
    + "ERR2 AS ErrorCode, " 
    + "ERR3 AS ErrorCode " 
    + "FROM ERR_TB"; 

List<Entry> entries = connection.Query<Entry, BpcError, BpcError, BpcError, Entry>(sql, 
(entry, e1, e2, e3) => 
{ 
    if (e1 != null) 
     entry.Errors.Add(e1); 

    if (e2 != null) 
     entry.Errors.Add(e2); 

    if (e3 != null) 
     entry.Errors.Add(e3); 

    return entry; 
}, 
splitOn: "ErrorCode, ErrorCode, ErrorCode") 
.ToList();