2012-11-10 58 views
15

我正在使用VS 2012和EF 5.我有一个现有数据库,我想从现有数据库创建POCO类。我按照步骤将ADO.NET实体数据模型添加到我的项目中。我通过向导来使用现有的数据库。然后在设计器打开的情况下创建edmx和tt文件。但是,我想创建POCO对象并使用它们。微软网站指出,POCO实体框架生成器已经过时,我应该使用DBContext生成器。我无法弄清楚我用来生成POCO类的步骤。我只看到edmx设计师。我真的不想要一个edmx文件,而只需要POCO类。如何使用EF 5和VS 2012从现有数据库创建POCO类?实体框架5 - 如何从现有数据库生成POCO类

+0

VS2012默认生成POCO实体和DbContext。它不适合你吗? – Pawel

回答

14

使用EF 5.x DbContext Fluent Generator

您可以在线模板添加:

  • 生成从现有的数据库EDMX为POCO
  • 加入EF 5.x的
  • 选择Add New Item
  • 搜索在线模板DbContext Fluent Generator

这将增加三个T4模板到您的项目:

  • XXX.Context.tt - 从的DbContext
  • XXX.Entities.tt文脉 - POCO实体
  • XXX。 Mappings.tt - 每个实体的流畅映射

但是您需要手动设置路径到您的edmx数据模型。每个模板都有行string inputFile = @"$edmxInputFile$";。这里需要提供您的EDMX文件的名称:

string inputFile = @"Northwind.edmx";

+0

感谢您的信息。我添加了模板,但没有生成代码。我修改了所有这些来修复$ edmxInputFile $,但没有任何反应。我右键单击他们每个人,然后点击运行自定义工具。我错过了什么? – user31673

+0

@ user31673实际上你不需要任何自定义工具。只需保存编辑过的模板,它就会自动生成输出文件(它将在模板的节点下) –

+1

啊,还有一件事 - 删除使用edmx文件生成的上下文和实体。你只需要图表。 –

9

这样做的过程,现在是相当精简,它似乎。 EDMX设计师本身很容易从已接受的答案中找到步骤。基本上,

  • 通过添加ADO.NET实体数据模型的项目从现有的数据库模型(EDMX)(见here有详细介绍),
  • 然后

在实体设计器中打开.edmx文件。

用鼠标右键单击实体设计器表面上的空白区域,并指向添加代码生成项目。

在Add New Item对话框中,选择Online Templates并在Search Online Templates文本框中输入DBContext。

为您的模板选择合适的版本(5.0,如果您要定位实体框架5.0)。

单击确定。

这将完成所有的工作,显然。这里引用的说明指的是在线模板安装EF 5.x DbContext Fluent Generator是必需的。如果您已安装它,则无需在“在线模板”中进行搜索,但在“已安装的模板”中进行搜索。

欲了解更多信息,你可以检查this页面,“使用DbContext生成模板生成对象层代码”部分。