2015-05-18 35 views
0

使用先执行代码,是否有方法从现有数据库生成实体类?我知道如何使用迁移。我得到如何用迁移更新数据库。我不知道的是如何从迁移之前创建的现有数据库创建模型集。我有很多桌子。从现有数据库生成实体POCO

这里的适当工作流程是什么?我真的宁愿不用手写这些东西。

注:我不能使用EDMX。因此,不要将其注册为“只创建一个edmx文件”的千个问题的重复。

回答

1

我正在将一个使用Code First的重要遗留项目移至现有数据库。 https://msdn.microsoft.com/en-us/data/jj200620.aspx。我做的第一件事是修改默认模板,以便尽量减少命名空间等所需的更改(我将这些类生成后移到其他项目中)。 https://msdn.microsoft.com/en-us/data/jj593170.aspx然后,我在一小组相关表中进行反向工程,创建一个迁移,验证Up()代码中的所有内容与我的数据库匹配,注释Up()代码并更新数据库。您也可以使用-IgnoreChanges添加迁移,但我喜欢查看代码。过了一段时间,我使用这种技术http://cpratt.co/migrating-production-database-with-entity-framework-code-first/#at_pco=smlwn-1.0&at_si=54ad5c7b61c48943&at_ab=per-12&at_pos=0&at_tot=1将所有小迁移转移到单个迁移中。

一些引用的链接提到EF Power Tools,但我不认为我需要安装那些反向工程(VS 2013,EF 6.1.2)。我确实需要安装这个模板的Nuget包:https://www.nuget.org/packages/EntityFramework.CodeTemplates.CSharp/

+0

这是我尝试的第一件事之一。我不知道如何谷歌。 “ADO.NET实体数据模型”不再作为可添加项目存在。即使它仍然存在于6.1.2中,我宁愿学习如何为未来的项目做到这一点。另外,这个原创项目是用ASP编写的。没有什么可以迁移的。 – Jordan

+0

@Jordan:你是否安装了[VS的实体框架工具](https://www.microsoft.com/en-us/download/details.aspx?id=40762)? – afrazier

+0

好吧,我确实看到在控制面板下安装的Visual Studio 2013实体框架6.1.1工具,VS中没有引用。 –

相关问题