遇到NHibernate和枚举问题。我有一个带有enumType属性的简单实体:
public virtual SchemaStatus Status
{
get;
set;
}
public enum SchemaStatus
{
PREP,
BGN,
FAIL,
CREA
}
还有一个映射:
Map(x => x.Status)
.Column("Status")
.Nullable();
当db表中的status列为null时会发生什么? NHibernate从枚举返回第一个值,它的PREP在这里。所以我的问题是当属性是枚举类型时,如何防止nhibernate返回第一个枚举值而不是null?
答案 0 :(得分:2)
您显示的代码仅表明数据库中允许使用NULL值。当遇到这样的NULL时,它应该映射到什么枚举值?如果您希望它为NULL,则应将Status更改为可为空的SchemaStatus。
尝试类似:
public virtual SchemaStatus? Status
{
get;
set;
}
我现在不在PC,所以我不能尝试 - 但应该是这样的。