2014-11-25 98 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,現在我不是,所以我不能嘗試 - 但它應該是類似的東西。