ALTER TABLE DROP COLUMN失败,因为表'yyy'中不存在列'xxx'

时间:2016-04-14 15:03:02

标签: asp.net-mvc entity-framework ef-migrations

我犯了一个错误。我删除了数据库中表__MigrationHistory中的一些行 现在,当我运行我的项目时,我强制执行此错误:

  

ALTER TABLE DROP COLUMN失败,因为表'yyy'中不存在列'xxx'。

我怎样才能解决这个问题?

5 个答案:

答案 0 :(得分:8)

添加新迁移以重新同步:

add-migration MissingXXX -IgnoreChanges // tells EF to just take a snapshot
update-database

现在您又恢复了同步状态,可以继续进行未来的模型更改。

答案 1 :(得分:1)

OK, finally I solved my problem.
I added field 'xxx' to table 'yyy' manually in my database.

答案 2 :(得分:0)

为什么不改变你的表来重新找回丢失的列?然后再尝试放下你的桌子:)

答案 3 :(得分:0)

这里有更多详细信息,因为我遇到了同样的问题,并且此问题对帮助有所帮助: 无论出于什么原因,如果出现此错误: ALTER TABLE DROP COLUMN失败,因为表'yyy'中不存在列'xxx'。 做这个: 手动更新数据库中的表

  1. 转到服务器资源管理器(2)
  2. 表格
  3. 双击'yyy'
  4. 添加: 新列“ xxx”
  5. 在Visual S的左上方,“任何CPU”下 是选项“ UPDATE”。这将更新表格。
  6. 现在转到“ yyy.cs”模型下的该表模型 加: 公用字符串“ xxx” {get;设置;}
  7. 现在使用PM(工具-> Neu获取软件包管理器-> PM)
  8. 执行更新迁移或回滚取决于您。

答案 4 :(得分:0)

当我尝试向表中添加新字段时,我使用EF Core 3.1.1做到了这一点。

我没有删除MigrationHistory表中的条目,但我还原了上一次迁移,删除了生成的迁移文件,然后使用“添加迁移”再次生成了它们。然后,我注意到了迁移的新的上下方法,其中使用了AlterColumn而不是AddColumn和RemoveColumn。我从以前的Up和Down方法中获得了代码,并且解决了它。