1 つのコンテキストを作成し、Parallel.ForEach(...) を使用して複数の EF クエリを同時に実行します。
「接続が閉じられませんでした。接続の現在の状態は接続中です。これらの線に沿ったその他の例外。
これは、アプリケーションのスレッド化された性質によるものですか? 単一のコンテキストを同時に使用して、単純に読み取ることはできませんか?
1 つのコンテキストを作成し、Parallel.ForEach(...) を使用して複数の EF クエリを同時に実行します。
「接続が閉じられませんでした。接続の現在の状態は接続中です。これらの線に沿ったその他の例外。
これは、アプリケーションのスレッド化された性質によるものですか? 単一のコンテキストを同時に使用して、単純に読み取ることはできませんか?
オブジェクト コンテキストはスレッド セーフではないため、マルチスレッド シナリオでは Parallel.Foreach を使用したくないでしょう。
ただし、たとえば MARS を有効にすると、同じ接続で複数のクエリを並行して実行できます。
foreach (var employee in context.employees.where(...))
{
var department = employee.departments.FirstOrDefault(...);
}
ただし、パフォーマンスに注意する必要があります。