映射枚举错误FluentNhibernate

时间:2014-12-12 06:31:46

标签: c# nhibernate fluent-nhibernate nhibernate-mapping fluent-nhibernate-mapping

我想将enum映射到mysql数据库。

class CommisionWorking
{ 
    public enum Color{ O, PP, FP };
}

这是我的mapping班级。

class CommisionWorkingMap : ClassMap<CommisionWorking>
{
    public CommisionWorkingMap()
    {
      Map(x => x.Color).CustomType<typeof(Color));
    }

这显示错误。 试图

Map(x=>x.Color).CustomType<GenericEnumMapper<Color>>
Map(x => x.Color).CustomType();

两者都显示错误。

请帮助。

1 个答案:

答案 0 :(得分:0)

我想说,这里提到的解决方案没有什么不同:

Mapping enum with fluent nhibernate

因此,如果表格包含整数列,我们可以将其映射为:

// instead of any of these
// Map(x => x.Color).CustomType<typeof(Color));
// Map(x => x.Color).CustomType<GenericEnumMapper<Color>>
// Map(x => x.Color).CustomType();
// this will map color to integer column with values 0 == O, 1 == PP...
Map(o => o.Color);

如果您有字符串列(值为O,PP,...),那么您的尝试应该有效:

Map(x => x.Color).CustomType<GenericEnumMapper<Color>>

如此处所述:How do you map an enum as string in fluent nhibernate?