2012-07-17 204 views
0

只需諮詢NHibernate的專家,我知道(並廣泛使用)懶加載的集合。nhibernate在課堂上懶惰

但是,迄今爲止,我一直無法確定在類級別設置惰性屬性的含義。

在我們現有的hbm文件中,它們都具有懶惰設置爲false的類節點。例如

<class name="Decision" lazy="false" ...> 

我已經刪除了該屬性試驗(從而默認這是真的),結果是我得到一個InvalidProxyTypeException

我認爲這是因爲它將所有屬性(即引用類型)和集合設置爲lazy =「true」,而不管它們是否是數據對象。

所以我的問題是,這個假設是否正確?在NHibernate配置的類節點級別設置lazy =「true」是否將所有引用類型和集合類型默認設置爲lazy =「true」?在課堂上還有其他的懶惰=「真實」嗎?

如果我上面說的是真的,那麼它也意味着它不可能在你的域對象中混合正常屬性和數據屬性,除非你也將這些屬性設置爲虛擬,即使它不是必需的。

public virtual FirstName {get; set;} 
public virtual LastName {get; set;} 
public FullName {get{ return FirstName + " " + LastName;}} // InvalidProxyTypeException thrown! 

回答