1

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

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

var context = new MyEntities();

这很好用。

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

4

1 回答 1

4

所以我猜你正在使用 EDMX 设计器提供的默认代码生成器 - 它将使用基于ObjectContext重量EntityObject的实体。

如果你想使用 DbContext,你必须:

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

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

于 2012-06-24T19:57:36.610 回答