在存储库实例中实例化DbContext

时间:2012-02-16 17:29:31

标签: asp.net-mvc entity-framework dependency-injection ninject

在ASP.NET MVC3应用程序中,我的控制器将使用一组BL“管理器”类,而这些类又将使用存储库。这些存储库依赖于EF DbContext实例来执行其职责。

我打算将IoC容器配置为按以下方式进行依赖注入(在数据模块中)

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

StoreContextDbContext。它是构造函数注入GenericUserRepository。 这样,我认为,the rule of my DbContext to be instantiated in also PerRequest将继续实现,对吧?

1 个答案:

答案 0 :(得分:1)

是的,肯定会是 - 因为ICatUserRepository在请求范围级别解析,IoC容器将在此时(对于每个请求)在解析构造函数的依赖关系后创建GenericUserRepository的新实例注射。

解析StoreContext依赖关系意味着IoC容器将通过StoreContext的绑定,检查当前请求是否已存在StoreContext 的现有实例< / em>如果没有创建要注入的新副本 - 在您的情况下,这意味着您为每个新请求获得StoreContext的新实例。