Dapper對它所映射的類型很挑剔。這可以保護您免受以後彈出的各種令人討厭的錯誤。
例如,您的數據庫可能會返回:
010hello
10a10
374837483748374837483748374834784378437438743874384738473
將這種東西映射到Int32
沒有明確的行動方案
也就是說,有兩種策略可以跟隨dapper一起使用,不需要更改IL生成。
選項1:影子屬性
class Foo
{
public int Age
{
get
{
int age;
int.TryParse(ageString, out age);
return age;
}
}
string ageString;
}
\\ usage
cnn.Query<Foo>("select ageString from TableWithString");
選項2,在SQL中強制轉換
cnn.Query<Bar>("select cast(ageString as int) Age from TableWithString");
沒有乾淨的方法來擴展Dapper中的映射功能,如果這樣做,您將無法合併我們隨時間添加到本地副本的任何修復。