【问题标题】:Entity Framework 4.0 - Generate change scriptEntity Framework 4.0 - 生成更改脚本
【发布时间】:2011-05-08 08:55:48
【问题描述】:

我已经使用 EF 4.0 (MS SQL 2008) 构建了我的应用程序,并且模型越来越大。

我的问题是,当我向模型添加新表/约束等时,我将生成一个脚本来创建我的 SQL 数据库,但它会删除所有表,所以我会丢失所有数据。 :-(

有谁知道如何生成更改脚本,以便我可以保留数据并更新数据库?

提前致谢。

索伦

【问题讨论】:

标签: .net sql visual-studio-2010 entity-framework-4


【解决方案1】:

如果您手头有现有数据库和新数据库的实例,您可以尝试Redgate SQL Compare 构建更改脚本。我可以推荐这个,因为我目前正在测试它以将其构建到我们的变更管理部署过程中(尚未拥有该产品,但正在评估)

编辑 - 我最初放置了 sql 源代码控制,但实际上是指 SQL 比较。已修复。

【讨论】:

    【解决方案2】:

    我的做法是“开发”成2个sql数据库。

    第一个是我做那些重大更改等的 EF (Project_SchemaDB)。

    第二个是我可能做一些数据测试的地方(Project_DataDB)。

    VS2010 带有一个非常好的数据库项目,它允许您编写数据库之间的更改(增量),然后应用它们。

    所以……程序是这样的。

    更改 EF 到 Project_SchemaDB 的连接并进行更改,自动生成 sql。

    现在在 vs2010 中打开数据库项目,在 Project_SchemaDB 和 Project_DataDB 之间进行架构比较,如果您满意,请应用更改。

    当您运行应用程序时,请确保您连接到 Project_DataDB。

    您当然可以做更多的事情来摆脱这种乏味,但它非常强大,当您与团队合作时,您可以对脚本进行版本化更改,并在以后的轨道上进行部署。

    【讨论】:

    • 请注意:要在 Visual Studio 中使用数据库项目,您需要高级版或终极版。它在 Express 或 Professional 版中不可用。
    【解决方案3】:

    我建议获取Database Generation Power Pack,它将允许您生成自动更改脚本。安装此软件包后,您只需像往常一样点击“从模型生成数据库”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-29
      • 2018-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多