Создание DbContext в экземпляре репозитория - PullRequest
2 голосов
/ 16 февраля 2012

В приложении ASP.NET MVC3 мои контроллеры будут работать с набором классов BL "manager", которые, в свою очередь, будут использовать репозитории.Эти репозитории полагаются на экземпляры EF DbContext для выполнения своих обязанностей.

Я планирую настроить контейнер IoC для выполнения внедрения зависимостей следующим образом (в модуле данных)

Bind<StoreContext>().ToSelf().InRequestScope();
Bind<ICatUserRepository>().To<GenericUserRepository>().InRequestScope();

StoreContext - это DbContext.Это конструктор вводится в GenericUserRepository.Таким образом, я предполагаю, что правило моего DbContext, который будет создан в PerRequest , останется выполненным, верно?

1 Ответ

1 голос
/ 16 февраля 2012

Да, конечно, это так - поскольку ICatUserRepository разрешается на уровне области запроса, контейнер IoC в этот момент (для каждого запроса) создает новый экземпляр GenericUserRepository после разрешения его зависимостей для внедрения в конструктор.

Устранение зависимости StoreContext означает, что контейнер IoC пройдет привязку для StoreContext, проверит, существует ли уже существующий экземпляр StoreContext для текущего запроса и, если он не создан, новая копия для инъекции - в вашем случае это означает, что вы получаете новый экземпляр StoreContext для каждого нового запроса.

...