Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 请解释如何实例化我的DbContext?_C#_Dependency Injection_Entity Framework 6_Dbcontext - Fatal编程技术网

C# 请解释如何实例化我的DbContext?

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

大约3年前,我构建了一个Web API,并使用Ninject for DI创建了一个通用存储库。今天,我正在检查代码以进行一些更改,但我无法理解DbContext的实例化位置。我不记得我没有做过什么,我相信这是我读到的关于一般回购协议的一系列实现的混合体

我花了相当长的时间在网上阅读文档,但找不到答案。有人能给我解释一下吗?这样我就可以把它记录下来了?下面是我的示例通用repo、应用程序repo、控制器和Ninject绑定。我知道在.NETCore中,您可以在启动时注入它,但这是使用EF6的WebAPI2

一般回购:

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
}