將枚舉存儲為數據庫中的字符串

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
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因