【问题标题】:EF Core Migrations not being recognizedEF Core 迁移未被识别
【发布时间】:2018-11-29 13:53:00
【问题描述】:

在 PMC 中执行 add-migration 后,将创建迁移类,并在 Up 方法中进行所需的所有正确更改。

当我在 PMC 中运行 update-database 命令时出现错误

System.InvalidOperationException: The migration '***MigrationName***' was not found.

我以前从未见过这个,它说的文件不存在明显存在。

如果我执行 remove-migrations 命令,新创建的迁移类不会被删除,我会收到一条错误消息,指出之前的迁移已被应用。

似乎所有使用 add-migrations 创建的新迁移都无法通过 update-database 或 remove-migration 命令识别

【问题讨论】:

    标签: entity-framework-core ef-core-2.0


    【解决方案1】:

    我们刚刚遇到了同样的问题。问题是,我们从 Visual Studio 的解决方案中排除了 Migrations 文件夹。

    • 项目显示所有文件
    • 在“迁移”上右键单击
      » 包含在项目中

    以上步骤为我们解决了这个问题。

    【讨论】:

    • 我的问题是我有多个可执行项目。所以当我第一次运行迁移时。我是 MyExample.Console 作为启动项目。然后我添加了另一个 MyExample.Core.Console 项目,这就是启动项目。因为迁移最初是在 MyExample.Console 项目下运行的,所以该项目文件包含迁移的所有文件列表。新的 MyExample.Core.Console,该项目文件对这些迁移一无所知,因此它永远无法找到它们。
    【解决方案2】:

    其中一个原因是 dbcontext 不在启动项目中,而在另一个项目中。在这种情况下,PM 可能无法找到完成迁移的路线。我们可以使用带有显式 dbcontext 和 proj 名称的 dotnet,其中 dbcontext 为:

    dotnet ef 数据库更新 --context YourAppContext --project YourProj

    【讨论】:

    • 这就是我解决问题时的答案。如果我没记错情况。我将所有 EF6 移至在新项目中创建的 EF Core。我试图从原始 EF6 启动项目创建迁移。
    猜你喜欢
    • 2021-11-23
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多