2

NHibernateのバッチ保存に関して問題が発生しています。同時に、NHibernateマッピングを介してリンクされている250以上のエンティティを保存しています。

2つのエンティティ間には1対多の関係があります。

ParentEntity 1 
   ----  ChildEntity 1
   ----  ChildEntity 2
   ----  ChildEntity 3
              --
              --
   ----  ChildEntity 249   
   ----  ChildEntity 250   


So when i call 
      repository.save(ParentEntity 1);

250のchildEntityと1つのParentEntityの保存を内部的に呼び出します。パフォーマンスを向上させるために、すでにバッチサイズを設定しています。しかし、しばらくすると、「リーダーが閉じているときにreadを呼び出そうとすると無効になります」という例外が発生します。

詳細については、プロファイラーでSQLクエリを確認しました。200のchildEntitiesまで、挿入ステートメントを見ることができますが、その後、リセット接続が呼び出されました。"exec sp_reset_connection"いいえ、リーダーが閉じられるという問題は、このリセット接続が原因です。

誰かがこの問題を解決するために私を助けてくれますか?

サンクス、マヘシュ。

4

0 に答える 0