实体框架5代码优先 - 如何“重新开始”?

时间:2013-04-25 16:19:28

标签: entity-framework ef-code-first entity-framework-5 ef-migrations

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

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

1 个答案:

答案 0 :(得分:8)

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

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

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

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

从这里开始,一切都应该像往常一样。你只有一个缺失的链接"在您的迁移中,因为您已手动处理了一些更改。