Entity Framework 尝试添加数据库中已有表的迁移

Entity Framework trying to add migration of tables that are already in database

尝试在本地 运行 我的 ASP.NET MVC 应用程序时,一切正常。但是一旦我将它部署到 Azure,它就会不断给我错误:

Unable to update database to match the current model because there are pending changes and automatic migration is disabled.

因此,我使用 Visual Studio 中的程序包管理器控制台和 运行 Update-Database 命令连接到远程数据库。这给了我同样的错误。当我查看 SQL Server Management Studio 中的数据库时,似乎所有迁移都已应用。

所以在此之后我尝试了 运行ning Add-Migration 以查看是否有任何我没有注意到的更改。它创建的迁移与前两个迁移完全相同(其中一个迁移中没有任何内容)。

到目前为止,站点 运行 可以正常使用大约两周,包括一些迁移。我不知道如何解决这个问题,所以感谢您的帮助。

我确定我正在连接到正确的数据库,因为当我将它更新到目标迁移时我看到它发生了变化。我也瞄准了正确的项目。

如果您确定 Add-Migration 正在为已应用的更改创建脚本,则需要更新数据库的迁移状态。您可以通过添加空迁移来完成此操作。这将捕获您当前模型的状态。

Add-Migration MergeChanges –IgnoreChanges 

执行 运行 此命令后,您将拥有一个空的迁移脚本。现在您可以更新数据库以匹配模型状态。由于实际迁移不包含任何更改,它只会在 __MigrationsHistory table 中添加一行,表明此迁移已应用。

注意 运行 仅当您没有任何待定更改并且您看到更新数据库的错误消息时才这样做。