我有这种情况。我以这种方式在项目上实现了 Code First 迁移
我将 AutomaticMigrationsEnabled 设置为 true 并创建了我的数据库。
2 位开发人员得到了我的代码,这对他们来说一切正常。
我后来修改了我的模型并将 AutomaticMigrationsEnabled 设置为 false 并使用 Add-Migration、Update-Database 来应用此更改。
这些相同的开发人员对代码进行了更新,并且对他们来说一切正常。
第三个开发人员(第一次)获得了最新的代码,并且为他正确创建了数据库(在步骤 3 中进行了更改)并且一切正常……直到……检查一下……他添加了属性OutputCache 到控制器中的操作方法。他从未改变过模型。他从来没有做过任何其他事情,他只是添加了那个属性。当他这样做时,他得到了这个错误。
'无法更新数据库以匹配当前模型,因为有待处理的更改并且自动迁移被禁用。将挂起的模型更改写入基于代码的迁移或启用自动迁移。将 DbMigrationsConfiguration.AutomaticMigrationsEnabled 设置为 true 以启用自动迁移。
他没有对数据库进行任何更改。他没有改变模型。他只是添加了这个属性。现在,当他删除此属性时,它仍然给出相同的错误。
我们已经尝试了一切。
a) 删除数据库
b) 将 AutomaticMigrationsEnabled 设置为 true
c) 运行更新数据库
d) 运行 Add-Migration、Update-Database
没有任何工作。无论有没有他的 OutputCache 更改,他仍然有这个错误(我认为这与它无关)。
我使用 AutomaticMigrationsEnabled 或我遵循的步骤有什么问题吗?AutomaticMigrationsEnabled 是否应该在应用程序的生命周期内不改变?
沮丧和困惑。
萨钦