LinqのNHibernateクエリに何らかの問題があります。NHibernateコレクションeager loading take count
詳細のバウチャーを取得する必要があります。私はそれらを反復する必要があるので、私はすべての情報を一回の実行で取得したかったのです。
私のクエリは、次のいずれかです。VouchersToIntegrateはバウチャーであり、各バウチャーの行をVoucherLines
return this.Session.Query<VouchersToIntegrate>()
.Take(query.BatchSize)
.Fetch(x => x.VoucherLines)
.ToList();
。
ここでbatchSizeは50.000に設定されていますが、すべてのオブジェクトを返すと23XXXになります。これは、データベース(クライアント側)からすべてのオブジェクトを取得した後で、フレームワークが内部的に別名を実行していると推測するためです。 SQLサーバー側に別個のフィルタを持つ50.000オブジェクトを取得する他の方法はありますか?
おかげ
NHibernateで遅延ロードされたプロパティを反復処理しても、エンティティを適切にマップしていれば、n + 1ロードの問題は発生しません。 [詳細はこちら](/ a/36070727/1178314)を参照してください。したがって、n + 1の読み込みの問題があるために熱心に読みたい場合は、読んでください。 –