__MigrationHistory中意外删除的记录?

时间:2013-06-17 05:33:46

标签: c# .net entity-framework ef-code-first entity-framework-5

我意外删除了__ MobileHistory中的记录。尝试Add-Migration进行模型更改时,收到以下错误消息。

  

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

如果运行Update-Database,将收到以下错误。

  

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

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

2 个答案:

答案 0 :(得分:3)

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

如果您在没有数据库部分的情况下删除了此表,则可以使用一些选项

  • 删除完整的数据库,让实体框架从头开始重建(对于dev ok,你会丢失你的数据)
  • 创建第二个数据库,应用原始 的所有迁移,并复制粘贴__MigrationHistory表的缺失内容。

答案 1 :(得分:2)

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