【发布时间】: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