为什么 Entity Framework Core 迁移需要 .NET Core 2.x?

Kru*_*lur 12 c# entity-framework-core .net-5

在我的 .NET5.0 项目中,安装了 PostgreSQL Nuget 包 ( Npgsql.EntityFrameworkCore.PostgrSQL (5.0.2)) 及其 EF Core 的依赖项 ( Microsoft.EntityFrameworkCore (5.0.2))。

我正在尝试使用以下命令创建迁移:

dotnet ef migrations add InitialCreate
Run Code Online (Sandbox Code Playgroud)

但是,迁移失败,因为我被要求安装 .NET Core 2.0.0 - 按照推荐的下载链接,我被告知它不再可用,我可能想使用 5.0。我到底该如何运行迁移?

输出如下所示:

Build started...
Build succeeded.
It was not possible to find any compatible framework version
The framework 'Microsoft.NETCore.App', version '2.0.0' was not found.
  - The following frameworks were found:
      3.1.11 at [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
      3.1.12 at [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
      3.1.13 at [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
      5.0.3 at [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
      5.0.4 at [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

You can resolve the problem by installing the specified framework and/or SDK.

The specified framework can be found at:
  - https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=2.0.0&arch=x64&rid=osx.11.0-x64
Run Code Online (Sandbox Code Playgroud)

Mav*_*vie 8

确保你<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.5" />的 csproj 中有。另请尝试更新 dotnet-ef 工具:dotnet tool update --global dotnet-ef

我执行了这些操作,问题就消失了。

  • 没有为我解决问题... (2认同)

小智 6

如果您在类库中运行该命令,则可能会发生这种情况。startup-project运行命令时可以指向:

dotnet ef migrations add InitialCreate --startup-project <PathToProject>
Run Code Online (Sandbox Code Playgroud)