EF Core 2.0 迁移问题

EF Core 2.0 Migrations issue

我正在使用 EF Core 创建一个新的 ASP.NET Core 2.0 项目 (SDK 2.1.2),并且在添加迁移时,生成的代码由于无法解析而无法编译 SqlServerValueGenerationStrategy。这个 class 看起来是 Microsoft.EntityFrameworkCore.Metadata 命名空间的一部分,应该包含在 Microsoft.EntityFrameworkCore 中部件。但是我似乎无法解决这个问题。我项目的 csproj 文件如下所示:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <Reference Include="Microsoft.EntityFrameworkCore">
      <HintPath>..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.entityframeworkcore.0.1\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll</HintPath>
    </Reference>
    <Reference Include="Microsoft.EntityFrameworkCore.Relational">
      <HintPath>..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.entityframeworkcore.relational.0.1\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Relational.dll</HintPath>
    </Reference>
  </ItemGroup>

</Project>

根据上述项目文件,SqlServerValueGenerationStrategy 枚举应该已解决 (Microsoft.EntityFrameworkCore),但 VS2017 仍然报错。有什么想法吗?

命名空间和程序集是不同的东西。特别是名称空间可以在程序集之间共享。

在这种情况下,SqlServerValueGenerationStrategy 枚举确实包含在 Microsoft.EntityFrameworkCore.Metadata 命名空间 中,但是从 link 可以看出, 在 Microsoft.EntityFrameworkCore.SqlServer.dll assembly.

中定义