我正在試驗Dapper。我有一個類,它有一個枚舉和值作爲字符串存儲在數據庫中。將枚舉存儲爲數據庫中的字符串
這適用於FluentNHibernate使用GenericEnumMapper
是否有可能做同樣的小巧玲瓏的?
我正在試驗Dapper。我有一個類,它有一個枚舉和值作爲字符串存儲在數據庫中。將枚舉存儲爲數據庫中的字符串
這適用於FluentNHibernate使用GenericEnumMapper
是否有可能做同樣的小巧玲瓏的?
目前尚未內置此功能,因此在此處提出了一個解決方案: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
。
另一種解決辦法是使用新ITypeMap extensability儘管它仍然是有點冗長的實施。
這工作。期待更加完整的解決方案。 – 2011-06-01 13:53:01