如何使用实体框架回滚迁移的正确方法

Vin*_*iel 6 mysql entity-framework visual-studio entity-framework-6

我对 EF 和迁移非常新手。我正在尝试使用命令进行回滚,以运行 Down 方法

update-database -TargetMigration MyLastMigration
Run Code Online (Sandbox Code Playgroud)

输出结果

Target database is already at version 201701031905415_MyLastMigration.
Run Code Online (Sandbox Code Playgroud)

如何执行MyLastMigration的Down方法?

提前致谢

Dia*_*ana 7

您的目标迁移应该是您要回滚的迁移的前一个迁移:

update-database -SourceMigration MyLastMigration -TargetMigration MigrationPreviousToMyLastMigration
Run Code Online (Sandbox Code Playgroud)

在您的情况下,该SourceMigration参数是可选的,因为您在 后尚未应用任何迁移MyLastMigration

要检查先前迁移的名称,您可以使用Get-Migrations,它返回应用于数据库的迁移列表。

编辑:正如 Ivan Stoev 在评论中所说,SourceMigration参数只能与参数一起包含Script,所以在这种情况下没有意义。正确的命令是这样的:

update-database -TargetMigration MigrationPreviousToMyLastMigration
Run Code Online (Sandbox Code Playgroud)