0

我有这种情况。我以这种方式在项目上实现了 Code First 迁移

  1. 我将 AutomaticMigrationsEnabled 设置为 true 并创建了我的数据库。

  2. 2 位开发人员得到了我的代码,这对他们来说一切正常。

  3. 我后来修改了我的模型并将 AutomaticMigrationsEnabled 设置为 false 并使用 Add-Migration、Update-Database 来应用此更改。

  4. 这些相同的开发人员对代码进行了更新,并且对他们来说一切正常。

  5. 第三个开发人员(第一次)获得了最新的代码,并且为他正确创建了数据库(在步骤 3 中进行了更改)并且一切正常……直到……检查一下……他添加了属性OutputCache 到控制器中的操作方法。他从未改变过模型。他从来没有做过任何其他事情,他只是添加了那个属性。当他这样做时,他得到了这个错误。

'无法更新数据库以匹配当前模型,因为有待处理的更改并且自动迁移被禁用。将挂起的模型更改写入基于代码的迁移或启用自动迁移。将 DbMigrationsConfiguration.AutomaticMigrationsEnabled 设置为 true 以启用自动迁移。

他没有对数据库进行任何更改。他没有改变模型。他只是添加了这个属性。现在,当他删除此属性时,它仍然给出相同的错误。

我们已经尝试了一切。

a) 删除数据库

b) 将 AutomaticMigrationsEnabled 设置为 true

c) 运行更新数据库

d) 运行 Add-Migration、Update-Database

没有任何工作。无论有没有他的 OutputCache 更改,他仍然有这个错误(我认为这与它无关)。

我使用 AutomaticMigrationsEnabled 或我遵循的步骤有什么问题吗?AutomaticMigrationsEnabled 是否应该在应用程序的生命周期内不改变?

沮丧和困惑。

萨钦

4

0 回答 0