NHibernate采用第一个枚举值,而只返回null

本文关键字:返回 null 第一个 枚举 NHibernate | 更新日期: 2023-09-27 18:31:54

遇到了NHibernate和枚举的问题。我有一个带有 enumType 属性的简单实体:

public virtual SchemaStatus Status
    {
        get;
        set;
    }
public enum SchemaStatus
{
    PREP,
    BGN,
    FAIL,
    CREA
}

并且有一个映射:

 Map(x => x.Status)
     .Column("Status")
     .Nullable();

当数据库表中的状态列为空时会发生什么?NHibernate从枚举返回第一个值,其PREP在这里。所以我的问题是如何防止 nhibernate 在属性为枚举类型时返回第一个枚举值而不是 null?

NHibernate采用第一个枚举值,而只返回null

您显示的代码仅声明数据库中允许 NULL 值。当遇到这样的 NULL 时,它应该映射到哪个枚举值?如果希望它为 NULL,则应将 Status 更改为可为 null 的架构状态。

尝试类似操作:

public virtual SchemaStatus? Status
{
    get;
    set;
}

我现在不在 PC 上,所以我不能尝试它 - 但它应该是类似的。