实体框架4.3现有数据库的迁移错误

本文关键字:数据库 迁移 错误 框架 实体 | 更新日期: 2023-09-27 18:28:26

我有一个用EF 4.1创建的现有数据库。然后我安装了EF 4.3并启用了迁移。现在我更改了一个实体的名称。Up()方法中的第一行代码是DropForeignKey()。如果我用更新数据库运行迁移,它会抛出一个异常"无法删除约束"。

问题是,在ef4.3中,外键命名约定发生了变化。在4.3中,它们看起来像4.1中的"FK_Table_Table_Column_ID",类似于"Table_Table"。

我该怎么改?

实体框架4.3现有数据库的迁移错误

您能让代码首先重新创建数据库吗?如果执行此操作,则将使用新的命名约定重新创建所有关键点。

我写了一篇关于这一点的博客文章,以及在升级到实体框架4.3时需要注意的其他一些事情。

丑陋。

您是否尝试过安装EntityFrameworkPowerTools并让它对您的数据库进行逆向工程?它可能会更好地处理生成的代码中现有的FK名称格式,并帮助您克服这一障碍,而无需执行更激烈的操作,如重新创建一个全新的DB和手动将数据从旧复制到新。