Package' EntityFramework 6.2.0'使用' .NETFramework,Version = v4.6.1'进行了恢复。而不是项目目标框架' .NETCoreApp,Version = v2.0'

时间:2018-01-11 06:35:52

标签: c# entity-framework

我制作了.net core 2.0网络应用。我使用NUGET添加了Entity Framework 6.2.0,然后我收到此错误

  

Package' EntityFramework 6.2.0'使用' .NETFramework,Version = v4.6.1'进行了恢复。而不是项目目标框架' .NETCoreApp,Version = v2.0'。此软件包可能与您的项目不完全兼容。

我该如何解决这个问题?

5 个答案:

答案 0 :(得分:42)

问题是您的实体版本与.NetFramework.NetCore混淆。您的应用程序目标框架是Asp.Net Core。所以你应该安装与Asp.net Core

相关的包

在您的情况下,'EntityFramework 6.2.0'.NETFramework,Version=v4.6.1'而不是'.NETCoreApp,Version=v2.0'的支持。因此,请使用以下版本的实体框架而不是您的。

PM>  Install-Package Microsoft.EntityFrameworkCore -Version 2.0.1 

答案 1 :(得分:2)

或者,您可以将目标框架更改为net461,如下所示。

res = arr.group_by { |h| h[:account_id] }.map do |key, duplicates|
  credit = duplicates.sum { |h| h[:amount_credit] || 0 }
  debit = duplicates.sum { |h| h[:amount_debit] || 0 }
  {
    account_id: key,
    amount_credit: (credit > debit ? credit - debit : 0),
    amount_debit: (debit > credit ? debit - credit : 0)
  }
end

通过将目标框架更改为net461,您可以使用.net核心和完整的.net框架。我认为在这段时间内,这种方法更好。因为EF Core仍然没有像many to many relationship和其他一些主要功能。当然,这取决于您对ORM工具的需求和期望。

答案 2 :(得分:1)

将您的项目更改为.NETFramework,Version=v4.6.1或选择支持.NETCoreApp,Version=v2.0的实体框架nuget

答案 3 :(得分:0)

I had the same problem, and was introduced by altering my solution to use a new TargetFramework.

<TargetFramework>netcoreapp2.2</TargetFramework>

After the Update I tried to add the Identity Framework but failed with a warning as described.

By Adding the packages in this sequence solved it for me:

Microsoft.EntityFrameworkCore
Microsoft.AspNetCore.Identity

答案 4 :(得分:0)

就我而言,我的项目是Core 2.2。我首先安装(NuGet)Microsoft.EntityFrameworkCore v2.2.4,并且一切正常。然后,我偶然安装了Microsoft.AspNet.Identity而不是Microsoft.AspNetCore.Idendity(v2.2.0)。一旦我的眼睛发现了.Identity软件包中缺少的“核心”,然后我通过卸载错误并安装正确的插件来修复它,然后警告消失了。我希望我不是唯一一个在新项目的Nuget安装上走得很快的人:)