C# 请解释如何实例化我的DbContext?
大约3年前,我构建了一个Web API,并使用Ninject for DI创建了一个通用存储库。今天,我正在检查代码以进行一些更改,但我无法理解DbContext的实例化位置。我不记得我没有做过什么,我相信这是我读到的关于一般回购协议的一系列实现的混合体 我花了相当长的时间在网上阅读文档,但找不到答案。有人能给我解释一下吗?这样我就可以把它记录下来了?下面是我的示例通用repo、应用程序repo、控制器和Ninject绑定。我知道在.NETCore中,您可以在启动时注入它,但这是使用EF6的WebAPI2 一般回购:C# 请解释如何实例化我的DbContext?,c#,dependency-injection,entity-framework-6,dbcontext,C#,Dependency Injection,Entity Framework 6,Dbcontext,大约3年前,我构建了一个Web API,并使用Ninject for DI创建了一个通用存储库。今天,我正在检查代码以进行一些更改,但我无法理解DbContext的实例化位置。我不记得我没有做过什么,我相信这是我读到的关于一般回购协议的一系列实现的混合体 我花了相当长的时间在网上阅读文档,但找不到答案。有人能给我解释一下吗?这样我就可以把它记录下来了?下面是我的示例通用repo、应用程序repo、控制器和Ninject绑定。我知道在.NETCore中,您可以在启动时注入它,但这是使用EF6的We
public GenericRepository(DbContext _context, ILogService _log)
{
this.context = _context;
entities = context.Set<T>();
}
控制器:
public ApplicationController(IApplicationRepository _applicationRepository)
{
this.applicationRepository = _applicationRepository
}
九对象绑定:
kernel.Bind().To()代码>默认情况下,Ninject允许您自动解析具体类型
有关更多信息,您可以阅读Ninject wiki:默认情况下,Ninject允许您自动解析具体类型
有关更多信息,您可以阅读Ninject wiki:我知道Ninject做什么,但我想问的是DbContext是如何实例化的?我的代码中没有任何一个自动解析DbContext的地方。据我所知,GenericRepository是用Ninject实例化的。当Ninject试图解析它时,GenericRepository构造函数中的所有依赖项也将被解析,即使您以前没有绑定它们。但是,只有具体类型可以在没有绑定的情况下解析。谢谢你,Aleksey。这就是让我困惑的地方。如果Ninject正在解析DbContext,这是一个具体的类。我知道Ninject做什么,但我想问的是DbContext是如何实例化的?我的代码中没有任何一个自动解析DbContext的地方。据我所知,GenericRepository是用Ninject实例化的。当Ninject试图解析它时,GenericRepository构造函数中的所有依赖项也将被解析,即使您以前没有绑定它们。但是,只有具体类型可以在没有绑定的情况下解析。谢谢你,Aleksey。这就是让我困惑的地方。如果Ninject正在解析作为具体类的DbContext。
public ApplicationController(IApplicationRepository _applicationRepository)
{
this.applicationRepository = _applicationRepository
}