Entity framework 先共享datacontext/注入依赖项实体框架6代码
既然EF6支持存储库和UoW开箱即用,那么如何与存储库一样共享Entity framework 先共享datacontext/注入依赖项实体框架6代码,entity-framework,dependency-injection,ef-code-first,entity-framework-6,Entity Framework,Dependency Injection,Ef Code First,Entity Framework 6,既然EF6支持存储库和UoW开箱即用,那么如何与存储库一样共享实体框架6.1.1.的数据上下文和注入依赖项(我使用Ninject)呢 我所能找到的都是至少3年前的问题和博客文章。但是,关于EF6,以及当前的情况,即存储库和UoW是开箱即用的 该解决方案包含两个项目,一个是web项目(asp.NETMVC),另一个是充当数据层的类库。数据层基于code-First 我确实创建了存储库,但没有意识到它已经得到了开箱即用的支持 我安装了ninject.mvc5,这是我注册的: private stat
实体框架6.1.1.
的数据上下文和注入依赖项(我使用Ninject
)呢
我所能找到的都是至少3年前的问题和博客文章。但是,关于EF6,以及当前的情况,即存储库和UoW是开箱即用的
该解决方案包含两个项目,一个是web项目(asp.NETMVC
),另一个是充当数据层的类库。数据层基于code-First
我确实创建了存储库,但没有意识到它已经得到了开箱即用的支持
我安装了ninject.mvc5,这是我注册的:
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<ApplicationDbContext>().ToSelf().InRequestScope();
kernel.Bind<IOrderRepository>().To<OrderRepository>().InRequestScope();
kernel.Bind<IUserRepository>().To<UserRepository>().InRequestScope();
}
私有静态无效注册服务(IKernel内核)
{
kernel.Bind().ToSelf().InRequestScope();
kernel.Bind().To().InRequestScope();
kernel.Bind().To().InRequestScope();
}
所以我想我需要重新考虑我的代码并删除存储库。但是我不知道应该用什么替换它们?存储库是
DbContext
中的DbSet
s。DbContext
是您的UoW
以前使用UoW时,现在就使用DbContext
。您不再传递单个存储库,而是传递整个DbContext
(坦率地说,以前传递单个存储库是不寻常的习惯,尽管很多人都这样做)
这样就足够了
kernel.Bind<ApplicationDbContext>().ToSelf().InRequestScope();
kernel.Bind().ToSelf().InRequestScope();
ApplicationDbContext
然后通过构造函数注入注入到上层类(如果适用)。Hi,您能给我一个例子说明其中一个上层类应该是什么样子吗?我是否也需要在类库项目中安装ninject?