gpt4 book ai didi

.net - EF Code First 迁移不适用于 Azure

转载 作者:行者123 更新时间:2023-12-02 06:50:08 26 4
gpt4 key购买 nike

这让我很沮丧,我已经多次浏览这里的问题/答案,我似乎遗漏了一些非常基本的东西。我将 EF 6 与 MVC 5 和 SQL Server 结合使用。据我了解并目前正在遵循的过程是:

  1. 创建模型并进行初始迁移。
  2. 运行更新数据库(本地)
  3. 部署到 Azure,选中“执行迁移”复选框。
  4. 修改模型
  5. 创建迁移
  6. 更新数据库(本地)
  7. 部署到 Azure,选中“执行迁移”复选框。

它在本地工作,但当我部署到 Azure 时,我始终得到:

"The model backing the '{contextname}' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269).

如果我删除数据库,删除所有迁移并创建新的“初始”迁移,它会重新创建空数据库并且我的软件可以正常工作。但我不想丢失所有数据,我的印象是 EF 迁移的重点。

那么我做错了什么?

顺便说一句,在我最近的尝试中,我手动修改了 azure 数据库以匹配本地数据库,但仍然收到上述错误。

最佳答案

您可以运行指向 Azure DB 而不是本地的 update-database 命令吗?有这个错误吗?

您可以手动更改 Azure 数据库,但 __MigrationHistory 表必须与本地表同步。我有时会做的是将更改应用到本地数据库,然后转到 Azure 数据库,模仿这些更改,然后清除 Azure Db __MigrationHistory 表中的行,并在应用迁移后从本地 __MigrationHistory 表复制所有行。

这是 Entity Framework (EF) 检查是否已应用迁移的内容 - 将检查行数是否匹配。

另请注意,当将迁移应用到 Azure 中包含大量数据的表时,通常会超时,因此您最终需要手动执行此操作。

关于.net - EF Code First 迁移不适用于 Azure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35592067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com