私はダッパーを試しています。列挙型を持つクラスがあり、値はデータベースに文字列として保存されます。
これは、GenericEnumMapper を使用して FluentNHibernate で動作します
Dapperで同じことをすることは可能ですか?
これは現時点では組み込まれていません。ここに提案された解決策があります: http://code.google.com/p/dapper-dot-net/issues/detail?id=24まだ決定していません. 拡張可能な型コンバーターのアイデアが好きです
現状では、これを行う最もクリーンな方法は、シャドウ プロパティを定義することです。
class MyType
{
public MyEnum MyEnum {get; private set;}
private string DBEnum { set { MyEnum = Convert(value);} }
private MyEnum Convert(string val)
{
// TODO: Write me
}
}
// cnn.Query<MyType>("select 'hello' as DBEnum") <-- will set MyEnum
試したばかりのサンプル コードからは、そうではないようです。列挙型を基になる整数値にマップできますが、文字列値にマップしようとすると、 aDataException
がスローされます。
別の解決策は、新しいITypeMap拡張性を使用することですが、実装するのはまだ少し冗長です。