0

私がやっている手順は次のとおりです。1)データを処理するすべてのエンティティを取得する2)各エンティティを個別に処理する

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();
     }
  }

そのため、1 つのエンティティの処理が完了し、子オブジェクトの変更時に次のエンティティの処理を開始すると、セッションが閉じられたことを示す遅延読み込み例外がスローされます。

誰でもこの問題の原因を見つけるのを手伝ってもらえますか?

ありがとう。

4

2 に答える 2

0

最初の変更が機能するので、副作用としてリポジトリまたはスコープがセッションを閉じていると思います。

于 2012-07-10T07:02:56.373 に答える
0

スコープ外になるとオブジェクトをクリアする using ステートメントを既に作成しているため、何もフラッシュする必要はありません。

于 2012-07-10T07:00:02.023 に答える