2

我有用EF 4.1创建的现有数据库。然后我安装了EF 4.3并启用了迁移。现在我改了一个实体的名字。 Up()方法中的第一行代码是DropForeignKey()。如果我使用Update-Database运行迁移,则会引发异常“无法删除约束”。实体框架4.3现有数据库的迁移问题

问题是,使用ef 4.3的外键命名约定已经改变。在4.3中,它们看起来像4.1中的“FK_Table_Table_Column_ID”,如“Table_Table”。

我该如何改变这种情况?

回答

2

你能够让代码先重新创建数据库吗?如果你这样做,那么所有的键都将使用新的命名约定重新创建。

我写了一篇博客文章中针对此和其他一些东西看出来的时候upgrading to Entity Framework 4.3.

+0

但是db里有allready条目。 – LuckyStrike 2012-05-09 18:38:21

0

难看。

您是否尝试过安装Entity Framework Power Tools并让其逆向工程您的数据库?它可能会更好地处理生成的代码中现有的FK名称格式,并帮助您克服这一障碍,而不会像重新创建全新的数据库和手动将数据从旧数据复制到新数据那样进行更剧烈的处理。