6

我已经在我的应用程序中成功地使用了EF 5 Code First。我有大约40张桌子。但是,我遇到了一个问题,我似乎可以使Migrations正确处理。所以,我想要做的是以某种方式告诉EF将数据库的当前模式视为新的起点,并从这一点开始管理它。这样,我可以手动进行必要的模式更改,然后告诉EF基本上从这一点开始。实体框架5代码优先 - 如何“重新开始”?

有没有一种方法可以做到这一点?我认为我将不得不删除__MigrationHistory表,或删除它的内容。但我不确定如何继续这样做。

回答

8

你应该能够做到以下几点:

  • 更改您的手动数据库以反映通过不会迁移处理模型的变化。现在一切都应该工作,但数据库和迁移系统不同步。

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

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

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