EF6代码迁移 - 数据库是不同的,但是相同

Jam*_*ndy 3 c# entity-framework ef-migrations

很抱歉发布这样的一般性问题,但是对于多种情况可能有多个答案(我可能需要在得到答案之前重新创建数据库),所以这里是:

我们有一个使用EF6的C#项目,已成功使用EF Migrations数月.今天早上,当我尝试运行我的项目时,我得到了这个非常熟悉的错误:

System.Data.Entity.Migrations.Infrastructure.AutomaticMigrationsDisabledException'发生在EntityFramework.dll中但未在用户代码中处理

附加信息:无法更新数据库以匹配当前模型,因为存在挂起的更改并且已禁用自动迁移.将挂起的模型更改写入基于代码的迁移或启用自动迁移.将DbMigrationsConfiguration.AutomaticMigrationsEnabled设置为true以启用自动迁移.

除了我找不到任何改变的证据.

  • 数据库的__MigrationHistory表与项目中的迁移相匹配.
  • 如果我执行"添加迁移",它会出现空的Up&Down方法.
  • 我们从几个晚上(当我们知道它工作时)将数据库恢复到临时数据库并进行比较,并且没有发现结构变化.
  • 我甚至尝试在空迁移上运行"update-database",这有效,但错误仍然存​​在.

有关这种情况如何发生的任何想法?

Jam*_*ndy 6

我们发现了这个问题.我们解决方案中的Core项目从EF 6.0.2升级到EF 6.1.1,但MVC项目没有.

这在几天前最初完成时并没有引起问题.但是昨天,一个团队成员用新版本创建了第一个迁移(只添加了数据,没有结构变化).迁移完成后,MVC项目将无法再与db进行交互.

最终让我们失望的是在__MigrationHistory表中看到了更新的ProductVersion.

一旦我升级了MVC项目,问题就解决了.

感谢那些提出建议的人.希望如果其他人有相同的症状,他们可以在这些帖子中找到答案.