Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.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
Entity framework 获取实体的DbContext_Entity Framework_Dbcontext - Fatal编程技术网

Entity framework 获取实体的DbContext

Entity framework 获取实体的DbContext,entity-framework,dbcontext,Entity Framework,Dbcontext,好吧,我觉得问这个问题有点愚蠢,但我想我对实体框架的内部工作机制缺乏理解 我想尝试使用DbContext。我有一个使用EF4.2的现有ASP.NET MVC应用程序。我可以使用以下方法获取实体: var context = new MyEntities(); 这个很好用 但是我怎么才能得到由DbContext表示的相同数据呢?所以我猜您使用的是EDMX designer提供的默认代码生成器-它将使用ObjectContext和基于实体的重载EntityObject 如果要使用DbContext

好吧,我觉得问这个问题有点愚蠢,但我想我对实体框架的内部工作机制缺乏理解

我想尝试使用
DbContext
。我有一个使用EF4.2的现有ASP.NET MVC应用程序。我可以使用以下方法获取实体:

var context = new MyEntities();
这个很好用


但是我怎么才能得到由
DbContext
表示的相同数据呢?

所以我猜您使用的是EDMX designer提供的默认代码生成器-它将使用
ObjectContext
和基于实体的重载
EntityObject

如果要使用DbContext,必须:

  • 关闭默认代码生成-在属性窗口中删除EDMX文件的自定义工具
  • 下载并安装(您可以直接从Visual Studio中的扩展管理器获得)
  • 在EF designer中,从设计器界面的关联菜单中选择“添加代码生成项”(不在实体上)

现在EF将向您的项目中添加两个.tt文件-一个将负责为EDMX文件中定义的每个实体或复杂类型创建一个新类,另一个将负责创建从
DbContext
派生的类,并公开所有实体类型的集,因此我猜您使用的是默认代码生成器由EDMX designer提供-它将使用基于
ObjectContext
和重载
EntityObject
的实体

如果要使用DbContext,必须:

  • 关闭默认代码生成-在属性窗口中删除EDMX文件的自定义工具
  • 下载并安装(您可以直接从Visual Studio中的扩展管理器获得)
  • 在EF designer中,从设计器界面的关联菜单中选择“添加代码生成项”(不在实体上)

现在EF将向您的项目中添加两个.tt文件-一个将负责为EDMX文件中定义的每个实体或复杂类型创建一个新类,另一个将负责创建从
DbContext
派生的类,并为您的所有实体类型公开集

您能进一步阐述一下吗?什么是髓质?它是DbContext的实现吗?“如何获得表示的相同数据”是什么意思?MyEntities是从EDMX文件自动创建的类,该文件从我的数据库导入架构数据。或者,换句话说,我有一个数据库。如何使用DbContext访问数据库。请参阅我的答案。我希望这有帮助。我不确定我是否正确理解了这个问题,但如果你有任何问题,尽管问。你能再详细一点吗?什么是髓质?它是DbContext的实现吗?“如何获得表示的相同数据”是什么意思?MyEntities是从EDMX文件自动创建的类,该文件从我的数据库导入架构数据。或者,换句话说,我有一个数据库。如何使用DbContext访问数据库。请参阅我的答案。我希望这有帮助。我不确定我是否正确理解了这个问题,但是如果你有任何问题,尽管问吧。根据我所知道的,这听起来完全是正确的答案。但我很难对这里发生的事情有更深入的了解。我有一本ASP.NETMVC的书,但我不喜欢他们实现存储库的方式。你能推荐一些阅读材料,让我们更深入地了解封面下发生的事情吗?谢谢。这只需要EDMX文件,它实际上是一些复杂的XML,并使用T4转换来创建代码文件(您甚至可以更改转换,因为它是项目的一部分)。没有别的了。它与存储库和其他模式没有关系。它只是简单的、可定制的实体和上下文类的生成,遵循EF要求的规则。据我所知,这听起来正是正确的答案。但我很难对这里发生的事情有更深入的了解。我有一本ASP.NETMVC的书,但我不喜欢他们实现存储库的方式。你能推荐一些阅读材料,让我们更深入地了解封面下发生的事情吗?谢谢。这只需要EDMX文件,它实际上是一些复杂的XML,并使用T4转换来创建代码文件(您甚至可以更改转换,因为它是项目的一部分)。没有别的了。它与存储库和其他模式没有关系。它只是简单的、可定制的实体和上下文类的生成,遵循EF要求的规则。