NHibernate取第一个枚举值而不是返回null

时间:2014-11-25 06:34:02

标签: c# .net nhibernate enums null

遇到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?

1 个答案:

答案 0 :(得分:2)

您显示的代码仅表明数据库中允许使用NULL值。当遇到这样的NULL时,它应该映射到什么枚举值?如果您希望它为NULL,则应将Status更改为可为空的SchemaStatus。

尝试类似:

public virtual SchemaStatus? Status
{
    get;
    set;
}

我现在不在PC,所以我不能尝试 - 但应该是这样的。