mam tej klasy ...Jak uzyskać elegancki mapować int do logicznej własności
public class MyDTO
{
public int Id { get; set; }
public bool Selected { get; set; }
}
a następnie użyć elegancki próbować utworzyć listę jak to ...
var list = this.db.OpenConnection().Query<MyDTO>(
@"SELECT T1.id, T2.id IS NOT NULL AS selected
FROM table1 T1
LEFT
JOIN table2 T2
ON T2.id = T1.id
AND Tl.id = @Id",
new { Id = id });
która zwraca zestaw wyników tak ....
id selected
9 0
10 1
11 1
12 0
Ale gdy powyższy kod jest wykonywany, pojawia się błąd
[InvalidCastException: Specified cast is not valid.]
Deserialize3d3c9260-abcb-4964-97c1-4a4e66b786d3(IDataReader) +354
[DataException: Error parsing column 2 (selected=0 - Int64)]
Dapper.SqlMapper.ThrowDataException(Exception ex, Int32 index, IDataReader reader) in C:\Projects\Web\SqlMapper.cs:1685
Deserialize3d3c9260-abcb-4964-97c1-4a4e66b786d3(IDataReader) +432
Dapper.<QueryInternal>d__13`1.MoveNext() in C:\Projects\Web\Source\SqlMapper.cs:608
System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +327
System.Linq.Enumerable.ToList(IEnumerable`1 source) +58
Dapper.SqlMapper.Query(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Boolean buffered, Nullable`1 commandTimeout, Nullable`1 commandType) in C:\Projects\Web\Source\SqlMapper.cs:538
Mam zamiar teraz utworzyć właściwość "Tłumaczenie", ale czy jest to nietypowy przypadek użycia?
Jak wyglądają Twoje stoły i z jaką wersją systemu operacyjnego korzystasz? Przetestowałem powyższy kod w moim systemie i mogłem odwzorować wartość int na wartość logiczną bez problemów z używaniem dappera. – Alex