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?
您显示的代码仅声明数据库中允许 NULL 值。当遇到这样的 NULL 时,它应该映射到哪个枚举值?如果希望它为 NULL,则应将 Status 更改为可为 null 的架构状态。
尝试类似操作:
public virtual SchemaStatus? Status
{
get;
set;
}
我现在不在 PC 上,所以我不能尝试它 - 但它应该是类似的。