我正在使用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仍在抱怨。有什么想法吗?
答案 0 :(得分:3)
命名空间和程序集是不同的东西。特别是名称空间可以在程序集之间共享。
在这种情况下,SqlServerValueGenerationStrategy
枚举确实包含在Microsoft.EntityFrameworkCore.Metadata
命名空间中,但正如您从链接中看到的那样,在 Microsoft中定义。 EntityFrameworkCore.SqlServer.dll 程序集。