列挙型をデータベースに文字列として格納する

c# dapper enums orm

質問

私はダッパーを試しています。列挙型を持つクラスがあり、値はデータベースに文字列として格納されます。

これは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

人気のある回答

私が試したサンプルコードから、それは見えません。列挙型をその基礎となる整数値にマップできますが、文字列値にマップしようとするとDataExceptionがスローされます。



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow