【问题标题】:Entitiy Framework: "Update Database from Model" instead of "Generate Database from Model"实体框架:“从模型更新数据库”而不是“从模型生成数据库”
【发布时间】:2011-03-04 11:35:18
【问题描述】:

我使用 Visual Studio 2010 创建了一个 Entity Framework 4 模型并从中生成了一个数据库。现在我发现自己添加了新属性(使用默认值),更改了列的文档,更改了列的名称,多次更改了列的类型。所有不需要太多“额外工作”才能自动完成的任务(以我的拙见)。每次我执行“从模型生成数据库”时,当然会丢失表数据。

有没有办法只是更新数据库的架构,可以这么说 - 保持表数据不变?也许与一些用户交互,尤其是在更改类型等时?或者这个功能是否太难实现而无法以可靠的方式工作?

提前致谢!干杯,大卫

【问题讨论】:

  • 你所看到的:“我只是更改了这两个属性的名称。它们的顺序相同,它们的名称含义大致相同,但这样更好”。 Visual Studio 看到的内容:“有一个具有这五个属性的对象,现在有一个具有这五个属性的对象。其中三个是相同的”。您如何期望 VS 判断它们中的哪一个是哪一个,甚至它们是改变的而不是新的?
  • 只是一个建议......我通常创建数据库然后从数据库更新模型。这样做的原因是我创建了一个名为 ApplicationModelDB 的数据库和另一个名为 ApplicationDB 的数据库。 applicationModelDB 没有数据,但这是我进行更新的地方。一旦我获得了我想要的实体 XML 和 DB,我将我的 DB 脚本应用到我的 Applcation DB。这完成了两件事。我可以跟踪创建/更新数据库或恢复到旧版本所需的 SQL。并且它允许我管理实体框架设计器的奇怪怪癖。

标签: entity-framework visual-studio-2010


【解决方案1】:

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

它包括一个数据库生成工作流程,供设计人员进行迁移,而不是删除/创建。

此帖子按“原样”提供,不提供任何保证,也不授予任何权利。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-28
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    • 2011-05-15
    • 1970-01-01
    相关资源
    最近更新 更多