首页 > 解决方案 > 是否可以恢复意外删除的 EF 迁移?

问题描述

我正在为一个涉及对数据库进行一组更改的项目开发新功能。该项目使用 Entity Framework 6 Code First。

我结束了我的测试,当我意识到我错过了迁移(所有源文件 .cs、.Designer.cs、.resx)时,我正要发布代码和数据库更改。

我不能确定它是如何发生的,但我必须在运行Update-Database删除了这些文件。

现在,当我Get-Migrations在我的开发数据库上运行时,我得到一个如下列表:

//LastGoodMigration
//DeletedMigration => can this be recovered?
//AnotherMigration
//CurrentMigraton

从这种情况中恢复的正确方法是什么?

标签: .netvisual-studio-2015entity-framework-6

解决方案


我找到了解决方案,毕竟我觉得很愚蠢。

我错误地专注于“恢复”丢失的迁移文件的任务,忘记了当前数据库状态毕竟是由当前实体类决定的事实。

所以我发出了以下命令:

Update-Database -TargetMigration LastGoodMigration -Force

然后我删除了以下所有迁移文件,并用一个简单的方法重新构建了一个新的单一迁移:

Add-Migration NewAllIncludingMigration

抱歉这个愚蠢的问题。


推荐阅读