【问题标题】:Error: The name is used by an existing migration错误:现有迁移使用该名称
【发布时间】:2020-03-13 09:22:54
【问题描述】:

最近我运行add-migration命令,我有一些错误,所以我运行remove-migration来撤销它。但是当我再次运行add-migration 时,它说:The name 'blablabla' is used by an existing migration。如何解决这个问题。我已经仔细检查了迁移文件夹,没有具有该名称的迁移。

【问题讨论】:

  • 通过文件资源管理器检查项目结构。您可能需要手动删除一些类/文件,以便重新进行迁移。
  • 已检查,没有文件或类具有该名称。当使用add-migration Blablabla 时,它会在名称“Blablabla”(例如:20200313092540_Blablabla)之前创建一个带有时间戳的 cs 文件,我看不出它如何被复制?
  • 我明白你的意思,你也检查了数据库吗?如果我记得还创建了一个迁移表。
  • 在数据库中检查,表 EFMigrationsHistory,在 MigrationId 列中没有具有该名称的记录。好困惑……

标签: c# entity-framework ef-core-3.1


【解决方案1】:

删除项目 src 中的 bin 和 obj 文件夹rebuild 并且它应该允许您添加同名的迁移。这对我有用。

它们似乎缓存在 bin 和 obj 文件夹中,当您尝试添加具有相同名称的新迁移时,它会检查这些文件夹并向您抛出错误消息。

在 .net core 2.2 上测试

【讨论】:

  • 只有 .net core 3.1 对我有用。谢谢
【解决方案2】:

尝试在移除迁移后构建您的应用程序:

dotnet ef migrations add YourMigration
dotnet ef migrations remove
dotnet build
dotnet ef migrations add YourMigration

【讨论】:

  • 我右键单击解决方案并选择重建。使用dotnet build 和常规构建有什么不同?
  • @camahe 我不知道:),我只是尝试做like people adviced
【解决方案3】:

如果您有权访问您的数据库,请转到数据库并删除您在迁移表中添加的上次迁移。然后它应该可以再次工作而没有任何问题。

【讨论】:

    【解决方案4】:

    检查“数据”文件夹。那里也有迁移。删除文件夹,重新运行构建,应该可以工作了。

    【讨论】:

      【解决方案5】:

      也许它被排除在项目之外。检查 TFS 或文件资源管理器。

      【讨论】:

        【解决方案6】:

        Build -> Clean Solution 完成这项工作。

        【讨论】:

          【解决方案7】:

          检查 \Migrations 文件夹,删除 'blala' 名称,都是 .cs。和 Designer.cs。再次运行 add-migration ,应该可以了。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-06-03
            • 2019-07-12
            • 2013-07-09
            • 2013-02-09
            • 1970-01-01
            • 2019-07-27
            • 2020-12-27
            • 1970-01-01
            相关资源
            最近更新 更多