NHibernate需要第一枚枚举值,而不是返回null
问题描述:
遇到NHibernate和枚举的问题。我有一个简单的实体enumType属性:NHibernate需要第一枚枚举值,而不是返回null
public virtual SchemaStatus Status
{
get;
set;
}
public enum SchemaStatus
{
PREP,
BGN,
FAIL,
CREA
}
而且还有一个映射:
Map(x => x.Status)
.Column("Status")
.Nullable();
而当数据库表状态栏为空,会发生什么? NHibernate返回枚举的第一个值,它的PREP在这里。所以我的问题是如何防止nhibernate返回第一枚举值,而不是null时属性是枚举类型?
答
您显示的代码仅在您的数据库中允许NULL值。遇到这样的NULL时,它应该映射到哪个枚举值?如果你希望它是NULL,你应该改变状态为一个可空的SchemaStatus。
试着这么做:
public virtual SchemaStatus? Status
{
get;
set;
}
我在PC,现在我不是,所以我不能尝试 - 但它应该是类似的东西。