我正在使用VS 2012和EF 5.我有一个现有数据库,我想从现有数据库创建POCO类。我按照步骤将ADO.NET实体数据模型添加到我的项目中。我通过向导来使用现有的数据库。然后在设计器打开的情况下创建edmx和tt文件。但是,我想创建POCO对象并使用它们。微软网站指出,POCO实体框架生成器已经过时,我应该使用DBContext生成器。我无法弄清楚我用来生成POCO类的步骤。我只看到edmx设计师。我真的不想要一个edmx文件,而只需要POCO类。如何使用EF 5和VS 2012从现有数据库创建POCO类?实体框架5 - 如何从现有数据库生成POCO类
回答
使用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";
感谢您的信息。我添加了模板,但没有生成代码。我修改了所有这些来修复$ edmxInputFile $,但没有任何反应。我右键单击他们每个人,然后点击运行自定义工具。我错过了什么? – user31673
@ user31673实际上你不需要任何自定义工具。只需保存编辑过的模板,它就会自动生成输出文件(它将在模板的节点下) –
啊,还有一件事 - 删除使用edmx文件生成的上下文和实体。你只需要图表。 –
这样做的过程,现在是相当精简,它似乎。 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生成模板生成对象层代码”部分。
- 1. 使用实体框架生成POCO类和现有数据库的映射
- 2. POCO与实体框架生成的类?
- 3. 从现有数据库生成实体POCO
- 4. 实体框架4和使用Poco实体生成器生成POCO类
- 5. 实体框架数据库首先POCO T4生成和验证
- 6. 实体框架:从数据库生成时实现接口
- 7. 从现有数据库生成POCO EF 5(有一些条件)
- 8. 实体框架的元数据类POCO
- 9. 实体框架5从数据库更新模型不会生成表类
- 10. 实体框架:从类生成数据库
- 11. 从数据库生成实体类在播放框架2
- 12. 从数据库生成实体框架生成空的EDMX
- 13. 如何在实体框架的POCO类
- 14. 如何在现有数据库和Poco结构中使用实体框架
- 15. 实体框架与现有数据库
- 16. 实体框架 - 生成类
- 17. 实体框架4.1 Poco类避免多个数据库往返
- 18. 实体框架5多个数据库
- 19. 如何升级项目以使用实体框架5 POCO生成器
- 20. 如何以编程方式从数据库生成实体框架类?
- 21. 实体框架4.0生成只读模型,当我从现有的数据库
- 22. 实体框架POCO
- 23. POCO实体框架
- 24. 实体框架+ POCO
- 25. 实体框架5.x数据注释
- 26. 实体框架4.0生成的实体集与POCO与INotifyPropertyChanged/IDataErrorInfo
- 27. 从WSDL生成实体框架类
- 28. Netbeans - 从数据库生成实体类
- 29. 从数据库生成实体类
- 30. 实体框架4和SQL Compact 4:如何生成数据库?
VS2012默认生成POCO实体和DbContext。它不适合你吗? – Pawel