大约3年前,我构建了一个Web API,并使用Ninject for DI创建了一个通用存储库。今天,我正在检查我的代码进行一些更改,我不能理解我的DbContext是在哪里被实例化的。下面是我的示例通用存储库、应用程序存储库、我的控制器和Ninject绑定。我知道在.net核心中,你可以从启动时注入它,但这是使用EF6的WebAPI2。通用回购:
public GenericRepository(
接下来,我有一个定义为public class Repository<T> : IRepository<T> where T : class的通用存储库,它接受构造函数中的工厂。我还有其他具体的存储库继承自这个存储库。我还有一个定义为public class UnitOfWork : IUnitOfWork的工作类单元,它接受构造函数中的工厂,并保存对工厂内上下文的所有更改(所有存储库都应该使用)。基本上,我
> where T : classIQueryRepository<IClient>ConcreteQueryRepository<Client>BindIClient>>().To<ConcreteQueryRepository<Client>>()
ConcreteQueryRepository<Client>不能用作泛型类型或方法“Ninject.Syntax.IBindingToSyntax<
然而,我不能完全理解如何将工作单元模式和泛型存储库模式与Ninject一起使用。我使用本教程作为起点:通用存储库:
public class GenericRepository<TEntity> : IGenericRepository我知道我可以使用一个接口IGenericRepository<TEntity>和具体的实现GenericRepository<TEntity>,然后使用Ninjec
我正在使用ninject,并且在多个存储库和接口方面存在问题。我成功地为一个repo和一个接口创建了ninject,但是当我试图使用具有相同数据库上下文的另一个接口来弹出另一个repo时,问题就出现了。使用相同数据库上下文的多个存储库和接口的解决方案是什么?private static void RegisterServices(IKernel kernel) //First one is working