私は MVC 5 インターネット アプリケーションを開発していDbContext
ますcontroller
。
私DbContext
のクラスにはDbSet
、さまざまなモデル エンティティのオブジェクトが多数あります。どのモデル エンティティも仮想オブジェクトを使用していませんが、ビュー モデルは各コントローラーで仮想オブジェクトを使用しています。
DbSet
コントローラーが同じコントローラー/アクションの結果で異なるオブジェクトを参照する場合、DbContext
異なる参照ごとに異なるインスタンスを使用する必要がありDbSet
ますか? 1 つのインスタンスDbSets
のみを使用してビュー モデルを作成するために別のクラスにアクセスしようとすると、Web サービス クラスで次のエラーが発生しました。DbContext
Message = "このコマンドに関連付けられた DataReader が既に開いているため、最初に閉じる必要があります。"
これは、同じクラス DbSets
を使用して異なるオブジェクトにアクセスするときに、MVC コントローラーのオブジェクトで CRUD 操作を行うときに発生する可能性がありますか?DbContext
次に例を示します。
MapLocationList
オブジェクトを作成/編集するMapLocationList
ときに、次のさまざまなオブジェクトにアクセスするコントローラーDbSet
があります: Asset
、MapLocation
.
MVC コントローラーで複数のDbContext
インスタンスを使用すると、オーバーヘッドはどのくらい増加しますか?
基本的に、私の質問は、コントローラー/アクションの結果でDbContext
異なるものにアクセスするときに、異なるインスタンスを使用する必要がありますか?DbSets
前もって感謝します。