2010-08-17 51 views
0

我的應用程序包含兩個視圖,列表和詳細信息。NHibernate通知其他會話有關更改

視圖的每個實例都有自己的NHibernate會話。

當用戶從實體細節視圖中保存實體後,事件發佈到列表視圖(實體ID)後,列表視圖使用自己的會話重新獲取修改的實體。

爲了列表視圖中的會話來獲得)修改實體我需要調用Session.clear(法的新版本,它工作正常,但後來我開始得到:

Initializing[Core.Domain.Order#0001730]-failed to lazily initialize a collection of role: Core.Domain.Cable.OrderItems, no session or session was closed 

什麼是正確的方法「同步「會話並避免延遲加載異常?

謝謝

回答

1
Session.Refresh(object); 

您可能需要調用

Session.Evict(object); 

然後

Session.Refresh(object); 

在一些多到一的情況。

0

請勿使用長時間運行的會話。它們不是爲了同步而設計的(這就是爲什麼你使用數據庫?)。 Session.Clear()只能用於特殊情況。