Использование Unity IOC для ввода dbcontext в мои контроллеры и уровень обслуживания?

asp.net asp.net-mvc entity-framework entity-framework-6 unity-container

Вопрос

Как я могу вставить свой dbcontext в сервисный слой с помощью Unity IOC. В частности, я хочу быть уверенным, что у меня есть только один dbcontext, и я хочу, чтобы это было уничтожено в нужное время, даже если я использую async.

Мое приложение использует EF6 и общий репозиторий. Там много кода, и я решил, что хотел бы удалить общий репозиторий, использовать EF6-контекст в качестве моего UOW и dbsets в качестве своих репозиториев. Это, по-видимому, подход, рекомендованный рядом более опытных разработчиков здесь, на SO. Имейте в виду, я не хочу менять свою ORM, базу данных. Приложение имеет менее 20 таблиц, и у меня есть много способов проверить его без использования другого репозитория.

Популярные ответы

Я не уверен, что вы подразумеваете, введя свой контекст БД в свой «сервисный уровень», но предположив, что вы имеете в виду веб-сайт ASP.NET MVC на основе тегов, вы просто хотите настроить свой контейнер с помощью глобального класса DependencyResolver и убедитесь, что ваши контексты настроены на запрос времени жизни с помощью PerRequestLifetimeManager .

Вы можете найти хорошую разбивку инъекции зависимостей в MVC здесь .




Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему