Я отделил классы бизнес-логики от контроллеров, чтобы контроллеры содержали как можно меньше бизнес-логики. Но так как я хочу использовать один и тот же dbcontext в течение всего срока службы веб-запроса и быть в состоянии передать entites с их контекстом вживую, я передаю dbcontext классам бизнес-логики, и почти каждый метод в этих классах принимает dbcontext в качестве параметра. (Когда контекст отличается, я должен запросить базу данных для создания того же объекта.)Повторное использование dbcontext
Есть ли что-то не так с этим подходом? (Как с точки зрения использования одного и того же контекста и принятия его в качестве параметра в каждом из методов бизнес-логики?)
Вероятно, лучше иметь уровень доступа к данным - которые обрабатывают всю специфичную для БД логику, бизнес-логика не должна знать конкретные данные БД, такие как контекст e.t.c. И время жизни контекста лучше контролировать через контейнеры IoC - как Singleton или One request - один экземпляр контекста. – Vladimir