2009-09-10 31 views
0

我想在Session中保留一個實體,由用戶在多個頁面上配置。這個實體加載了NHibernate,其中一些屬性/集合被延遲加載。你說:NHibernate:急切重新加載瞬態對象深嵌套的子屬性

  • 會議[ 「命令」] =新訂單一些下一頁(productRepository.Get(ID))
  • ,獲取會話[ 「命令」]現在用它
工作

但是,在這個時間順序是好的,但它的產品(和嵌套的東西)已被破壞,因爲它們在不同的會話中被延遲加載。

是否有可能告訴NHibernate我想將我的瞬態訂單的屬性急切地加載到最深層次?或者,唯一的解決方案是在 productRepository.Get(id) 時急於加載?像, Session.LoadNestedProperties(order,Eager);

更新:http://www.ribbing.net/index.php?option=com_content&task=view&id=35&Itemid=1似乎解決了這個問題。不過我不確定這個反射太棒了......

回答

0

你可以用你需要的對象加載所有的圖表,這有點棘手。

或者你可以嘗試以下方法:

我認爲您的訂單的單品。本產品是您的問題,因爲當用戶訪問第二頁時,它成爲分離的對象。你可以使用類似:

session.Update(myorder.Product)

商品實例重新連接到當前會話。之後,延遲加載應該可以正常工作。

相關問題