将枚举存储为数据库中的字符串

我正在试验小巧玲珑。 我有一个具有枚举的类,值存储为数据库中的字符串。

这适用于使用GenericEnumMapper的FluentNHibernate

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

目前尚未内置此function,此处有一个建议的解决方案: 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("select 'hello' as DBEnum") <-- will set MyEnum 

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

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

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

使用Dapper映射Uri字段