2012-07-10 72 views
0

下面是我在做什麼 1)獲取所有的entites處理每個實體單獨NHibernate的延遲加載問題

ForEach Entity 
    {  
    using (TransactionScope scope = new TransactionScope()) 
    { 
      - Modify Entity 
      - Modify Child objects //Childs can be accesed by Lazy loading 
      - _sessionFactory.GetCurrentSession().Update(Entity); 
      - _sessionFactory.GetCurrentSession().Flush(); 
      - scope.Complete(); 
    } 
    } 

所以有一次,一個實體的過程中完成的數據 2)工藝,並開始步驟在修改子對象時處理下一個實體拋出延遲加載異常說會話關閉。

任何人都可以請幫我找到這個問題的原因?

謝謝。

+0

什麼是'repository'?提供更多的代碼,使這個問題更清楚 – harry180 2012-07-10 06:58:41

回答

0

你不需要刷新任何東西,因爲你已經在創建一個using語句,它將在你的對象一旦被刪除時清除它,如果是scope的話。

+0

但是這不會解決問題 – 2012-07-11 01:01:53

0

由於第一次修改工作,我會猜測作爲副作用的存儲庫或範圍正在關閉會話。

+0

是的,可能是什麼東西只有在那裏......但不知道什麼.... – 2012-07-11 01:02:37