【发布时间】:2019-07-08 19:52:38
【问题描述】:
大约 3 年前,我构建了一个 Web API,并使用 Ninject for DI 创建了一个通用存储库。今天我正在审查我的代码以进行一些更改,但我不明白我的 DbContext 是在哪里实例化的。我不记得我没有做什么,我相信这是我在 Generic Repo 上阅读的一堆实现的混合体。
我花了很长时间阅读在线文档,但找不到答案。有人可以向我解释一下,以便我可以正确记录它吗?下面是我的示例通用仓库、应用程序仓库、我的控制器和 Ninject 绑定。我知道在 .net 核心中你可以从启动时注入它,但这是使用 EF6 的 web api 2。
通用回购:
public GenericRepository(DbContext _context, ILogService _log)
{
this.context = _context;
entities = context.Set<T>();
}
实体回购:
public ApplicationRepository(TransactionDbContext context) : base(context)
{
}
控制器:
public ApplicationController(IApplicationRepository _applicationRepository)
{
this.applicationRepository = _applicationRepository
}
Ninject 绑定:
kernel.Bind<IApplicationRepository>().To<ApplicationRepository>();
【问题讨论】:
标签: c# dependency-injection entity-framework-6 dbcontext