EF Core 2.0迁移问题

时间:2017-12-19 09:18:54

标签: asp.net-core-2.0 .net-core-2.0 ef-core-2.0

我正在使用EF Core创建一个新的ASP.NET Core 2.0项目(SDK 2.1.2),并且在添加迁移时,生成的代码无法编译,因为无法解析 SqlServerValueGenerationStrategy < / em>的。此类看起来是 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\2.0.1\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll</HintPath>
    </Reference>
    <Reference Include="Microsoft.EntityFrameworkCore.Relational">
      <HintPath>..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.entityframeworkcore.relational\2.0.1\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Relational.dll</HintPath>
    </Reference>
  </ItemGroup>

</Project>

基于上面的项目文件,应解析SqlServerValueGenerationStrategy枚举(Microsoft.EntityFrameworkCore),但VS2017仍在抱怨。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

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

在这种情况下,SqlServerValueGenerationStrategy枚举确实包含在Microsoft.EntityFrameworkCore.Metadata 命名空间中,但正如您从链接中看到的那样,在 Microsoft中定义。 EntityFrameworkCore.SqlServer.dll 程序集