2014-11-25 99 views
0

遇到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时属性是枚举类型?

回答

2

您显示的代码仅在您的数据库中允许NULL值。遇到这样的NULL时,它应该映射到哪个枚举值?如果你希望它是NULL,你应该改变状态为一个可空的SchemaStatus。

试着这么做:

public virtual SchemaStatus? Status 
{ 
    get; 
    set; 
} 

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