Я не уверен, что конкретная реализация здесь важна, но для полноты я использую Autofac в качестве контейнера ввода зависимостей для нового приложения.
Все мои репозитории зависят от DbContext
(единицы измеренияработы), которую я использовал библиотеку интеграции MVC3 для настройки как InstancePerHttpRequest()
, чтобы единица работы распределялась между репозиториями для каждого запроса.
Я просмотрел некоторые приложения, использующие Autofac, и заметил,что они устанавливают время жизни своих репозиториев как SingleInstance()
(singleton).Это правильно?
Причина, по которой я спрашиваю, состоит в том, что я могу понять, что нам на самом деле не нужно несколько классов репозитория, но если мы создаем один экземпляр репозитория, то это, безусловно, означает, что существует только одинссылка на DbContext
.В моей реализации репозитория он обращается к DbContext
как член класса, например _dbContext.Set<T>
blah ....
Так что _dbContext
должен иметь ссылку на некоторый объект в памяти.Как можно получить два отдельных запроса, иметь уникальный DbContext
, но совместно использовать один и тот же репозиторий?
Я что-то упустил из-за того, как работает DI?