在更新数据库 运行 之前删除代码优先迁移

Delete a code-first migration before update-database was run

这个看似简单得令人沮丧的问题在 Google 和 SO 上很难找到答案。我有一个 ASP.NET MVC 项目,我正在使用 Entity Framework 代码优先方法。我去添加另一个迁移但是当我 运行 Add-Migration MigrationName 命令时,我拼错了 MigrationName.

我还没有运行Update-Database。重命名自动创建的迁移 class 名称是否足够?或者我是否必须先删除迁移并添加一个具有正确名称的新迁移?如果是这样,我该怎么做?只需删除自动创建的迁移 class 还是还有更多内容?

虽然您可以重命名它们,但我认为您可能会遇到一些关于创建的 *.resx 文件的问题,因为它包含一个压缩的 EDMX 文件以及一些命名内容。最简单的方法是删除根迁移 class(这也会删除 migration.Designer.csmigration.resx 文件)并重新创建它。

如果您已经运行一个Update-Database命令,您仍然可以通过回滚来实现它:

Update-Database -TargetMigration NameOfPreviousMigration

(如果回滚会破坏数据,可能需要添加-Force