"The model backing the 'DataContext' context has changed" 但我正在进行同一次迁移

"The model backing the 'DataContext' context has changed" but I am on the same migration

我有一个 C# 解决方案。最近,我们将解决方案移到了 new 存储库中。

在旧解决方案中,我有一个即将被弃用 的控制台应用程序,它访问我的 Azure 托管数据库来做一些工作。我们在新存储库中进行了一些新的数据库迁移,并且有一些工作需要控制台应用程序,所以我将应用程序项目移到了新存储库中的一次性分支中,这样我就可以使用最新的迁移来构建它。

编译正常。但是,当我尝试 运行 它时,我总是得到 The model backing the 'DataContext' context has changed 错误。

奇怪的是我的代码和我的数据库在同一个迁移中。我什至可以运行那个数据库上的update-database命令它告诉我我有 "no pending migrations"。我确实比较了 visual studio 和数据库中的存储过程,它们都是相同的。尝试 Add-Migration "SyncTest" 时结果相同,它创建了一个没有更改的迁移。

我无法删除 __MigrationHistory table,因为我需要在生产服务器上 运行 这个控制台应用程序,并且不能承受 data/have 任何停机时间的损失。

所以如果我在我的控制台应用程序和我的数据库之间执行相同的迁移步骤,那么为什么它仍然抛出这个错误?我不知道还有什么地方可以检查!

我不知道为什么在您的特定情况下会发生这种情况,但我确实偶然发现了一种关闭错误的方法,将此行放在您的 DbContext 实例 ctor 中:

Database.SetInitializer<YourDbContextClass>(null);