【发布时间】:2015-12-21 12:47:51
【问题描述】:
我已经多次成功地完成了这种程序,但第一次,它似乎不起作用。我想合并我的应用程序的两个分支,它们具有不同的 Code First 迁移状态。我知道在两个版本的开发过程中,两个版本的架构都发生了变化,导致了不同的快照,所以我需要重新搭建我的合并迁移以匹配数据库快照,基本上是following this guide, Option 2。在给定的项目中,我有几十个迁移,其中多个已按照描述成功合并和重新搭建。
所以我正在做的是将数据库状态带到迁移之前的数据库版本(例如Update-Database -targetMigration 201511261243087_BeforeMigration,指南的第 4 步)并以正确的顺序重新构建合并的迁移,以便它们可以重新构建元数据。
当我使用命令Add-Migration 201512170931290_FirstMergedMigration 时,我收到以下错误消息:
无法生成显式迁移,因为以下原因 显式迁移待定: [201512170931290_FirstMergedMigration, 201512140935307_SecondMergedMigration]。应用待处理的显式 在尝试生成新的显式迁移之前迁移。
什么?我没想到会这样。我期望该命令重新构建现有迁移的元数据并更新架构快照。但它假设我想添加一个新的迁移。 -force 标志也无济于事。
当我按照推荐的步骤和Update-Database 进行操作时,EF 将创建一个新的迁移,称为:201512210931290_201512170931290_FirstMergedMigration。现在这真是太疯狂了。
我希望有一个单独的命令来重新脚手架元数据,这样它可能会显示更清晰的错误消息。
有人看过这个吗?
更新:
见我的own answer。
【问题讨论】:
标签: c# entity-framework entity-framework-6 entity-framework-migrations