3番目のオブジェクトが(同じく連続して)リポジトリから取得されると、次のエラーが発生します。最初の取得は成功しますが、詳細を取得するために戻ると、残りの負荷が発生し、これが表示されます。遅延ロード動作でNHibernateが失敗する
NHibernate.Exceptions.GenericADOException: could not load an entity
私はすべてのデータを上書きしており、3番目の項目については全く奇妙なことはありません。すべての参照オブジェクトと同様に完全に正常です。しかしながら、問題は一貫しており、おそらくタイミングの問題ではありません。他のオブジェクトが同じSessionオブジェクトを正常に使用しています。
私も同時にNHibernateのログに以下を参照してください。
NHibernate.Util.ADOExceptionReporter System.InvalidOperationException: Invalid attempt to call MetaData when reader is closed.
は、このエラーの私の研究によると、返され、最後を過ぎて反復した後、NHibernateのは、リーダーを使用しようとしていることを意味し行。しかし、NHibernate自体からの最初の取得によって行が生成されたため、その行為がどのように起こるのか分かりません(これは現在、遅延読み込みと一緒になっています)。
私は困惑しています。
SQLServerを使用していますか?プロファイラを使って何が起こっているのか分かりますか? –
はい、私はすでにshow_sqlを有効にしていて、プロファイラには驚きはありません。よく見えます。 – Tevya
ここには奇妙なことがあります。他のすべての型の場合、クエリには "exec sp_reset_connection"が実行されますが、最終的には失敗するオブジェクト型(Passenger)では実行されません。うーん。 – Tevya