データベースに対していくつかの異なるクエリを実行する必要があるとしましょう。各クエリは異なるデータを返します。各クエリは、UI スレッドとは異なるスレッドで実行されます。
データベースへのすべてのクエリに対して 1 つのスレッドを使用する必要がありますか? またはクエリごとに 1 つのスレッドを自由に使用できますか? おすすめの練習法は?
データベースに対していくつかの異なるクエリを実行する必要があるとしましょう。各クエリは異なるデータを返します。各クエリは、UI スレッドとは異なるスレッドで実行されます。
データベースへのすべてのクエリに対して 1 つのスレッドを使用する必要がありますか? またはクエリごとに 1 つのスレッドを自由に使用できますか? おすすめの練習法は?
単一ObjectContext/DbContext
インスタンスは、同時データベース アクセスには使用しないでください。これは、そのようなシナリオ向けに設計されていないためです。
関連するすべてのエンティティ インスタンスが単一のコンテキスト インスタンスに属している必要があるため、異なるコンテキスト インスタンスによって読み込まれたオブジェクトと対話すると、エラーが発生しやすくなります。それ以外の場合は、エンティティをアタッチおよびデタッチする必要があります。
すべての操作が読み取りである場合は、データを取得するために複数のスレッドを使用することが推奨されますが、CRUD 操作の場合は、スレッドを使用した単一のコンテキスト インスタンスを使用することをお勧めします。