2

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

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

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

StoreContext является DbContext. Он вводится конструктором в GenericUserRepository. Этот путь, я полагаю, the rule of my DbContext to be instantiated in also PerRequest останется выполненным, не так ли?

ответ

1

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

Разрешая в StoreContext зависимость означает, что контейнер IoC будет проходить через привязку для StoreContext, проверьте, если уже существующий экземпляр StoreContextдля текущего запроса и если не создать новую копию, чтобы ввести - В вашем случае это означает, что вы получаете новый экземпляр StoreContext для каждого нового запроса.

Смежные вопросы