6

我一直在我的应用程序中成功使用 EF 5 Code First。我有大约 40 张桌子。但是,我遇到了一个问题,我似乎可以让 Migrations 正确处理。所以,我想做的就是以某种方式告诉 EF 将数据库的当前模式作为一个新的起点,并从这一点开始管理它。这样,我可以手动进行必要的架构更改,然后告诉 EF 基本上从这一点开始。

有没有办法我可以做到这一点?我想我将不得不删除 __MigrationHistory 表,或者删除它的内容。但我不确定如何最好地继续这样做。

4

1 回答 1

8

您应该能够执行以下操作:

  • 手动更改数据库以反映模型中不会由迁移处理的更改。现在一切正常,但数据库和迁移系统不同步。

  • 运行Add-Migration ManuallyUpdatedDatabase -IgnoreChanges。这会创建一个完全空的迁移,因此它不会对数据库进行任何更改,但会确保系统知道已进行的手动更改。这样,手动更改将不会包含在您创建的下一个迁移中。

  • 运行Update-Database以应用空迁移。

从这里开始,一切都应该照常工作。您的迁移中只有一个“缺失的链接”,因为您已经手动处理了一些更改。

于 2013-04-25T17:09:48.200 回答