C# EF Add Migration命令Snapshot提供重新定义的架构更改

C# EF Add Migration命令Snapshot提供重新定义的架构更改,c#,.net,entity-framework,C#,.net,Entity Framework,我正在运行一个理论上简单的迁移。对于my up()方法: 但是,在运行迁移时,我在控制台中收到以下错误: Unable to update database to match the current model because there are pending changes and automatic migration is disabled 当我运行 Add-Migration “快照”提供了相同的架构更改。 原因是什么?? 多谢各位 如果两个人同时创建迁移并独立地将它们签入

我正在运行一个理论上简单的迁移。对于my up()方法:

但是,在运行迁移时,我在控制台中收到以下错误:

Unable to update database to match the current model because there are pending changes and automatic migration is disabled
当我运行

    Add-Migration
“快照”提供了相同的架构更改。 原因是什么??
多谢各位

如果两个人同时创建迁移并独立地将它们签入,则可能发生这种情况

假设您在源代码管理中检查了3次迁移A、B、C。两个人得到它们并创建迁移D和E。D和E都有架构快照,其中包括C之前的更改。创建D的人签入,然后创建E的人获得最新的。EF会认为模型不同步,因为E中的快照不包括D。添加迁移时,它会计算A-E中包括D的所有更改,并发现没有新的操作,因此迁移中没有任何内容

快照存储在迁移下的resx文件中。如果在xml编辑器中打开它,您将在其中看到快照

解决这一问题的方法是保留空迁移,因为它不会造成任何伤害,或者执行迁移的人可以删除并重新创建迁移,以便其快照包含来自D的更改


希望有帮助

我想添加我和我的团队最终选择的内容

虽然我选择MikeS的答案作为选择答案,但我们发现的另一个解决方案是在分支开始相互干扰之前回滚到上一次稳定迁移,删除较新的迁移,然后整合有问题的迁移


Add Migration命令自动获取所需的架构更改,然后我们添加了传输记录的逻辑。

删除冗余架构更改并保留空迁移确实允许所有迁移成功。
    Add-Migration