NHibernate枚举

NHibernate枚举,nhibernate,Nhibernate,使用NHibernate存储枚举的推荐方法是什么 换句话说,我应该在模型的属性中使用枚举类型吗?是ID(int)吗?还是一根绳子 我想从流畅的NHibernate角度了解。最常见的情况是将它们存储为数值。您不需要做任何特殊的事情,只需映射属性即可 有些人更喜欢将其存储为字符串(C#中定义的值的名称)。有一个用户类型可以执行此操作。看见我认为,genericenumapper现在是NH的一部分 经常有这样一个问题:如何将枚举值存储在自己的表中,以便为其定义外键。在新罕布什尔州,没有这样的东西是现成

使用NHibernate存储枚举的推荐方法是什么

换句话说,我应该在模型的属性中使用枚举类型吗?是ID(int)吗?还是一根绳子


我想从流畅的NHibernate角度了解。最常见的情况是将它们存储为数值。您不需要做任何特殊的事情,只需映射属性即可

有些人更喜欢将其存储为字符串(C#中定义的值的名称)。有一个用户类型可以执行此操作。看见我认为,
genericenumapper
现在是NH的一部分


经常有这样一个问题:如何将枚举值存储在自己的表中,以便为其定义外键。在新罕布什尔州,没有这样的东西是现成的。恕我直言,不需要将实际已在代码中定义(硬编码常量)的值存储到数据库中。

我们最近不得不在工作中处理这个问题

我们正在使用FluentNhibernate,并为此创建了一个约定:

public class EnumConvention : IPropertyConvention, IConventionAcceptance<IPropertyInspector>
{
    public void Accept(IAcceptanceCriteria<IPropertyInspector> criteria)
    {
        criteria.Expect(x => x.Property.PropertyType.IsEnum);
    }

    public void Apply(IPropertyInstance instance)
    {
        instance.CustomType(instance.Property.PropertyType);
    }
}

在数据库中,字段是一个整数

谢谢。你能给我更多关于你提到的用户类型的信息吗?很有趣。我想在向枚举添加新成员时必须小心?(关于id同步问题)只需确保手动指定枚举值,就不会出现问题。。。
Map(x => x.Enum);