Entity Framework: 从模型更新数据库而不是从模型生成数据库。

5
我使用Visual Studio 2010创建了一个Entity Framework 4模型,并从中生成了一个数据库。现在我发现自己不断地添加新属性(带有默认值),修改列的文档,更改列名称,多次更改列类型等任务。这些任务并不需要太多“额外工作”,因此可以通过自动完成来实现(在我看来)。每次我执行“从模型生成数据库”操作时,都会丢失表数据。
是否有一种方法只更新数据库的架构 - 保留表数据不变?也许需要一些用户交互,特别是在更改类型等方面?或者这种功能实现起来太困难,无法可靠地工作?
谢谢!David

1
你看到的是:“我只是更改了这两个属性的名称。它们的顺序相同,它们的名称大致意思相同,但这样更好。” 但是Visual Studio看到的是:“原来有一个具有这五个属性的对象,现在有一个具有那些五个属性的对象。其中三个是相同的。” 你期望VS如何区分它们哪个是哪个,甚至它们是被更改而不是新的? - Tomas Aschan
1
只是一个建议...我通常先创建数据库,然后从数据库更新模型。原因是我创建了一个名为ApplicationModelDB的数据库和另一个名为ApplicationDB的数据库。applicationModelDB没有数据,但那是我进行更新的地方。一旦我得到了我想要的实体XML和DB,我就将我的DB脚本应用于我的Applcation DB。这样做有两个好处。我可以跟踪创建/更新数据库所需的SQL,或者还原到旧版本。它还允许我管理Entity Framework Designer的奇怪问题。 - John Hartsock
重复的问题:https://dev59.com/nXA75IYBdhLWcg3wuLjD。 - Ashish Gupta
1个回答

5

微软员工Noam Ben-Ami - MSFT1在http://social.msdn.microsoft.com/Forums/en-us/adodotnetentityframework/thread/3adc080f-ee8c-4104-be29-95b2fb3fabe9上回答了我的问题,其回答如下:

我们已经开发了实体设计数据库扩展包以支持此功能。您可以在此处下载:http://visualstudiogallery.msdn.microsoft.com/en-us/df3541c3-d833-4b65-b942-989e7ec74c87

它包括一个用于设计器的数据库生成工作流程,可进行迁移而不是删除/创建。

本帖仅供参考,不提供任何明示或暗示的保证,也不授予任何权利。

我还没有测试这个工具,但我猜这些信息对其他人也可能有价值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接