我正在經歷一些奇怪的事情。我用代碼來修改NHibernate 3.2映射,並且有一個非常簡單的對象模型,我只是用來玩。NHibernate惰性加載但沒有虛擬屬性?
在整個模型中我的屬性都沒有標記爲虛擬的,因爲我不想延遲加載。我通過代碼映射,並在每個類映射我設置Lazy(false);
但是,當涉及到映射集合,如果我嘗試訪問會話後會話結束我得到一個錯誤"failed to lazily initialize a collection of role..."
。
我必須明確地設置collectionMapping.Lazy(CollectionLazy.NoLazy);
,然後纔會急於加載集合。我的理解是,除非您的模型中的屬性是在虛擬中定義的,否則懶加載是不可能的?
我從根本上錯過了什麼嗎?
推薦閱讀:[NHibernate是懶惰的,只是住它](http://ayende.com/blog/4573/nhibernate-is-lazy-just-live-with-it) – 2012-02-08 22:27:12