1

Linq NHibernate クエリに問題があります。

詳細が記載された一連のバウチャーを取得する必要があります。それらを反復する必要があるため、1 回の実行ですべての情報を取得したいと考えました。

私のクエリは次のとおりです。

                return this.Session.Query<VouchersToIntegrate>()
                .Take(query.BatchSize)
                .Fetch(x => x.VoucherLines)                    
                .ToList();

VouchersToIntegrate は伝票で、VoucherLines は各伝票の行です。

現在、batchSize は 50.000 に設定されていますが、すべてのオブジェクトを返すと、23XXX しか返されません。これは、データベース (クライアント側) からすべてのオブジェクトを取得した後、フレームワークが内部的に個別に実行していると推測するためです。SQL サーバー側で個別のフィルターを使用して 50.000 オブジェクトを取得する他の方法はありますか?

ありがとう

4

1 に答える 1

0

NHibernate の LINQ プロバイダーを使用してこのクエリを作成する方法はありません。

ただし、適切な SQL クエリを手作業で作成し、NHibernate の「ネイティブ SQL」API ( http://nhibernate.info/doc/nhibernate-reference/querysql.html ) を使用してエンティティにマップすることはできます。

于 2016-04-06T18:53:28.373 に答える