Я разрабатываю интернет-приложение MVC 5, и у меня есть вопрос относительно наличия более одного класса DbContext
в controller
.MVC 5 - Несколько DbContexts в контроллере
В моем DbContext
классах есть много DbSet
объектов для разных объектов модели. Ни один из моих модельных объектов не использует виртуальные объекты, однако мои модели просмотра используют виртуальные объекты в каждом контроллере.
Если контроллер ссылается на разные объекты DbSet
в том же контроллере/результате действия, должен ли я использовать другой экземпляр DbContext
для каждой ссылки DbSet
? Я столкнулся со следующей ошибкой в классе веба-службе, когда я пытаюсь получить доступ к различному DbSets
, чтобы создать модель представления при использовании только один DbContext
экземпляра:
сообщения = «Там уже находится открытая DataReader, связанная с этим Command который должен быть закрыт первым ».
Может ли это произойти при выполнении операции CRUD на объекте в контроллере MVC, когда различные DbSets
обращаются, используя один и тот же класс DbContext
?
Вот пример:
У меня есть контроллер MapLocationList
, что при создании/редактировании MapLocationList
объекта, следующие различные DbSet
объекты доступны: Asset
, MapLocation
.
Какое количество накладных расходов возникает при использовании более одного экземпляра DbContext
в контроллере MVC?
В принципе, мой вопрос заключается в том, должен ли использоваться другой экземпляр DbContext
при доступе к различным DbSets
в результате действия контроллера/действия?
Заранее спасибо.