2016-09-14 16 views
0

私はエンティティフレームワークと非同期メソッドを持つコントローラを使用しています。複数のコントローラが、異なるdbcontextを使用して同じデータベースに同時にアクセスできますか?

1台のコントローラが非同期方式でデータベースを再生している間、サーバーは別のクライアントから同じデータベースで再生する要求を受け取ることがあります。

私はdbcontextがスレッドセーフではないことを理解しています。

なぜここに問題はありませんか?

+0

接続先のデータベースの種類によって異なります。一部のユーザーは、複数のユーザーが同時にデータベースにアクセスするときの競合を防ぐためにロックを設定しています。 SQL Serverにはロックがありますが、Jet EngineまたはACEドライバ(アクセスおよびエクセルによって使用される)には競合を防ぐためのロックがありません。 – jdweng

答えて

4

私はdbcontextがスレッドセーフではないことを理解しています。同じDbContextインスタンスは、複数のスレッドから使​​用すべきではないことを意味

。複数のDbContextが異なるスレッドでデータベースにヒットするのはまったく問題ありません。

データベースでは、の状況はデータベースのロック/同時実行の設定によって異なりますが、それは別の質問です。

関連する問題