6

我不小心删除了 __MigrationHistory 中的记录。尝试Add-Migration更改模型时收到以下错误消息。

无法生成显式迁移,因为以下显式迁移处于挂起状态:[201303101108238_InitialCreate、201304020555457_xxx、201305070251407_xxx、201306090833462_xxx、201306140437274_xxxx]。在尝试生成新的显式迁移之前应用挂起的显式迁移。

运行会报如下错误Update-Database

数据库中已经有一个名为“TableName”的对象。

我能做些什么来让它发挥作用?

4

2 回答 2

6

__MigrationHistory 表包含 Entity Framework 确定完成哪些迁移的所有信息。根据您代码中当前的迁移列表,它将应用缺少的迁移。

如果您在没有数据库部分的情况下删除了此表,您有几个选择

  • 删除完整的数据库,让实体框架从头开始重建它(对于开发来说,你会丢失你的数据)
  • 创建第二个数据库,应用已在原始数据库上完成的所有迁移,复制粘贴 __MigrationHistory 表的缺失内容。
于 2013-06-17T06:23:28.120 回答
4

除了 Mark 提到的,您还可以在 Migration 文件夹中找到迁移文件(从 __MigrationHistory 表中删除的那个),并在方法 Up 和 Down 中注释代码,然后运行 ​​Update-database。它应该工作。

于 2013-06-17T06:49:11.330 回答