17

我正在尝试使用 dapper。我有一个类,它有一个枚举,值作为字符串存储在数据库中。

这适用于使用 GenericEnumMapper 的 FluentNHibernate

是否可以对 Dapper 做同样的事情?

4

3 回答 3

15

目前还没有内置,这里有一个建议的解决方案:http ://code.google.com/p/dapper-dot-net/issues/detail?id=24我们尚未决定. 我喜欢可扩展类型转换器的想法

就目前而言,最干净的方法是定义 shadow 属性,例如:

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
于 2011-06-01T02:27:14.850 回答
2

从我刚刚尝试过的示例代码来看,似乎不是。您可以将枚举映射到其基础整数值,但如果您尝试将其映射到其字符串值,DataException则会抛出 a。

于 2011-05-31T21:38:30.163 回答
0

另一个解决方案可能是使用新的 ITypeMap 可扩展性,尽管实现起来仍然有点冗长。

https://stackoverflow.com/a/12615036/444917

使用 Dapper 映射 Uri 字段

于 2012-12-18T19:35:17.550 回答