gpt4 book ai didi

c# - 迁移问题 - EF 认为数据库需要更新,引用它的项目不会运行

转载 作者:行者123 更新时间:2023-11-30 12:25:01 25 4
gpt4 key购买 nike

所以在上周,我向我的 MVC 门户项目添加了几个迁移。

发生了一些事情,这意味着我必须回滚特定的迁移。

我最近的迁移历史:

201506101200157_userPermissions
201508181440262_API1
201508201305341_ContactUpdate
201508241312425_ApiLog
201508271518402_ActivityLog

我需要取消的迁移是 ContactUpdate,我做了一些愚蠢的事情来实现它。我没有简单地进行更改并添加新的迁移,而是回滚到 API1,删除了 ContactUpdate 迁移,然后重新更新回 ActivityLog .

这似乎工作正常并且我的门户运行良好,我在这个项目中没有发现关于数据库的错误。但是当我现在运行 add-migration 时,up 方法基本上是 ContactUpdate 中的 down 方法,即它仍然认为它需要恢复以适应我所做的更改。

ContactUpdate 迁移涉及将两个字段添加到我的联系人表中。所以总而言之,这是我采取的行动顺序:

  • 回滚到 API1
  • 删除 ContactUpdate 迁移
  • Update-Database 到最新迁移
  • 从联系人类中删除两个字段

所以很明显为什么 EF 认为它需要删除这两列,因为我在上次更新后删除了它们。

我有一个引用这个 MVC 项目的项目现在抛出一个错误

The model backing the context has changed since the database was created

我将其归结为 EF 的这个问题,尽管数据库和我的代码之间完全内聚,但我认为我的数据库需要更新。我该如何解决这个问题?

最佳答案

您能否使用您的源代码控制恢复迁移并正确执行?即在 ActivityLog 之后添加一个新的迁移,它会撤消 ContactUpdate

如果没有,您可以添加一个空白迁移。这将包括您当前模型的快照并将其存储在迁移历史记录表中。这样做应该会让一切恢复正常。运行 Add-Migration 并删除 UpDown 方法的内容。

注意,我相信您已经知道这一点,但为了以后遇到此答案的任何其他人的利益,我不建议将空白迁移作为通常的工作流程,仅用于纠正错误。

关于c# - 迁移问题 - EF 认为数据库需要更新,引用它的项目不会运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32396367/

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