.NET 4.6.1上的Entity Framework Core 2.0

时间:2017-06-06 15:36:00

标签: entity-framework entity-framework-core

Microsoft just announced,Entity Framework Core 2.0现在将在.NET Standard 2.0上运行。

.Net Standard 2.0与.NET Framework 4.6.1兼容(如果这是正确的术语)。

但是,当我尝试添加latest NuGet package时,我收到一条错误消息,告诉我我使用的是错误的版本:

 Install-Package : Could not install package 
 'Microsoft.EntityFrameworkCore.SqlServer 2.0.0-preview2-25332'. You are 
 trying to install this package into a project that targets 
 '.NETFramework,Version=v4.6.1', but 
 the package does not contain any assembly references or content files 
 that are compatible with that framework. 

如果根据公告,我可以将EF Core 2.0与.NET Framework 4.6.1一起使用,有人可以解释一下,如果可能的话,举个例子说明一下。

4 个答案:

答案 0 :(得分:4)

为了在.NET 4.6.1项目中包含.NET Standard 2.0库,您需要包含NetStandard.Library.NetFramework NuGet包。

packages.config文件中当前版本的示例:

<package id="NETStandard.Library.NETFramework" version="2.0.0-preview1-25305-02" targetFramework="net461" />

答案 1 :(得分:2)

除了安装NETStandard.Library.NETFramework软件包之外,您还可能需要通过在*.csproj文件中添加以下内容来告诉旧版NuGet客户端它真正兼容。

<PropertyGroup>
  <PackageTargetFallback>netstandard2.0</PackageTargetFallback>
</PropertyGroup>

答案 2 :(得分:2)

转到你的.csproj并更改你的TargetFramework

<PropertyGroup>
  <PackageTargetFallback>netstandard2.0</PackageTargetFallback>
</PropertyGroup>

到它

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

答案 3 :(得分:0)

通过软件包管理器控制台运行Update-Package,这将以某种方式神奇地更新所有数据包,包括.Net Core,默认情况下会阻止您通过Nuget更新它们,因为它需要NetCore 2.0目标,而您需要目标4.6.1即使它应该兼容。

如果您这样做,项目将完美运行,并希望很快就可以直接通过nuget实现更新。