在不同的TFS分支上工作时会丢失EF Code First Migration吗?

bou*_*ouh 31 .net coldfusion entity-framework ef-code-first ef-migrations

我们正在使用TFS并为我们的Dev提供不同的分支.

  1. 在分支A中,我们进行了迁移以更改列大小

  2. 在分支B中,我们进行了迁移以添加新表.这个分支不知道分支A修改!!

  3. 两个修改都合并到主分支.

当我执行更新数据库时,它执行2迁移,但最后告诉我有待更改.如果我执行Add-Migration,它将创建与第一次迁移相同的(在分支A中).

无法更新数据库以匹配当前模型,因为存在挂起的更改并且已禁用自动迁移.将挂起的模型更改写入基于代码的迁移或启用自动迁移.将DbMigrationsConfiguration.AutomaticMigrationsEnabled设置为true以启用自动迁移.您可以使用Add-Migration命令将挂起的模型更改写入基于代码的迁移.

是因为我上一次迁移的属性Target de IMigrationMetadata的内容中缺少某些东西,因为它不知道第一次迁移?

是否可以处理不同TFS分支中的迁移?

And*_*bel 34

EF迁移步骤包含元数据文件,该文件具有作为迁移步骤结果的模型的签名.合并时的问题是在分支B中完成的迁移的签名不包括在分支A中迁移中完成的内容.只要迁移在分支中,这是正确的.合并时会出错.

要解决这个问题,您必须使用以下方法重新生成后一次迁移的元数据

add-migration MyMigrationName
Run Code Online (Sandbox Code Playgroud)

add-migration在没有-force参数的现有迁移上运行将仅重新生成元数据.

我在我的博客上的EF迁移和合并冲突帖子中深入介绍了合并场景.