实体框架 4.0 - 生成更改脚本

4
我使用EF 4.0(MS SQL 2008)构建了我的应用程序,模型变得越来越大。
我的问题是,当我向模型添加新表/约束等时,我到目前为止会生成一个脚本来创建我的SQL数据库,但它会删除所有表,所以我会丢失所有数据。 :-(
有人知道如何只生成更改脚本,以便我可以保留数据并仅更新数据库吗?
提前感谢。
Søren

VS2010 Ultimate有一个很好的功能。 - leppie
@leppie,你不需要Ultimate;DB工具也在Premium中。 - Craig Stuntz
3个回答

2
如果您手头上既有现有数据库,又有新数据库的实例,您可以尝试使用Redgate SQL Compare来构建更改脚本。我能推荐这个工具,因为我目前正在测试它,将其纳入我们的变更管理部署流程中(尚未拥有该产品,但正在评估)。

0
我处理这个问题的方式是将其“开发”成两个SQL数据库。
第一个是EF数据库,我在其中进行那些破坏性的更改等(Project_SchemaDB)。
第二个是我可能会进行一些数据测试的地方(Project_DataDB)。
VS2010带有一个相当不错的数据库项目,可以让您脚本化数据库之间的更改(增量),然后应用它们。
所以...流程如下。
将EF的连接更改为Project_SchemaDB并进行更改,自动生成SQL。
现在在vs2010中打开数据库项目,在Project_SchemaDB和Project_DataDB之间进行模式比较,如果您满意,则应用更改。
运行应用程序时,请确保您的连接是到Project_DataDB。
当然,您可以做更多来减轻这种乏味感,但它非常强大,并且在与团队合作时以及以后的部署中都可以得到版本化的脚本更改。

1
请注意:要在Visual Studio中使用数据库项目,您需要高级版或旗舰版。 它不可用于基础版或专业版。 - René

0

我建议您获取数据库生成动力包,这将允许您生成自动变更脚本。只需安装此软件包后像往常一样点击“从模型生成数据库”即可。


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