私はdapperを使用していますが、dbからintへの文字列値のキャストに問題があります。これを可能にするためにTypeMapをオーバーライドした人はいますか?
どんな提案も素晴らしいでしょう。
Dapperは、マップするタイプに気を配っています。これにより、後でポップアップするあらゆる種類の厄介なエラーから保護されます。
たとえば、データベースは次を返す可能性があります。
010hello
10a10
374837483748374837483748374834784378437438743874384738473
この種のものをにマッピングするための明確な行動方針はありませんInt32
とは言うものの、IL生成の変更を必要としないdapperで従うことができる2つの戦略があります。
オプション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のマッピング機能を拡張するクリーンな方法はありません。そうすると、時間の経過とともにローカルコピーに追加する修正をマージする必要がなくなります。