3
レポートを作成するとき、同じコンテキストの分離されたエンティティを含む3つのクエリを実行する必要があります。彼らは非常に重いので、私はそれらを平行して実行するために.ToListAsync();
を使用することに決めましたが、私の驚いたことに、私はそれから例外を取得します...EF 6 - パラレルクエリを正しく実行する方法
クエリを実行する正しい方法EF 6を使って並列?手動で新しいタスクを開始する必要がありますか?
編集1
コード問題は、このされ、基本的に
using(var MyCtx = new MyCtx())
{
var r1 = MyCtx.E1.Where(bla bla bla).ToListAsync();
var r2 = MyCtx.E2.Where(ble ble ble).ToListAsync();
var r3 = MyCtx.E3.Where(ble ble ble).ToListAsync();
Task.WhenAll(r1,r2,r3);
DoSomething(r1.Result, r2.Result, r3.Result);
}
可能な重複[EFデータコンテキスト - 非同期/待つ&マルチスレッド](のhttp:// /image/gif/paws/9707/cp-text-context-async-weit-multithreading) –
ちょっとしたヒント。 linqクエリでAsNoQueryableを呼び出すことを忘れないでください。それはパフォーマンスの助けになります –
どのような例外はありますか?どのようにクエリを並行して実行するのか、いくつかのコードを共有できますか? –