gpt4 book ai didi

entity-framework - 尝试使用面向 .Net 4.6.1 的可移植类库安装 EF Core

转载 作者:行者123 更新时间:2023-12-04 21:09:56 27 4
gpt4 key购买 nike

这是我第一次使用 VS2015 试验 EF Core、ASP Net Core 和可移植类库。公平地说,我越来越沮丧。

我想创建一个可以安装 EntityFramework.Core 的库。这个库需要在 WPF 应用程序和 ASP NET Core Web 应用程序中使用 - 现在忽略任何好的分层应用程序概念。我的想法是创建一个可移植类库。

使用我针对 .NET 4.6 和 ASP Net Core 的项目模板...

Targets

我得到一个带有类和 project.json 文件的项目,如下所示:

{
"supports": {
"net46.app": {},
"dnxcore50.app": {}
},
"dependencies": {
"Microsoft.NETCore": "5.0.0",
"Microsoft.NETCore.Portable.Compatibility": "1.0.0"
},
"frameworks": {
"dotnet": {
"imports": "portable-net452"
}
}
}

现在,当我从 nuget 安装 EntityFramework.Core 包时...

Install EF Core Nuget

...我得到以下输出:
Restoring packages for 'Acme.PCLEFClassLib'.
Restoring packages for K:\TFS\TestApps\Projects\DotNetCore\Acme.PCL1\Acme.PCL1\project.json...
Detected package downgrade: System.Reflection from 4.1.0-beta-23225 to 4.0.10
Acme.PCLEFClassLib (>= 1.0.0) -> EntityFramework.Core (>= 7.0.0-rc1-final) -> Microsoft.Extensions.DependencyInjection.Abstractions (>= 1.0.0-rc1-final) -> System.Reflection (>= 4.1.0-beta-23225)
Acme.PCLEFClassLib (>= 1.0.0) -> EntityFramework.Core (>= 7.0.0-rc1-final) -> System.Reflection (>= 4.0.10)
Detected package downgrade: System.Reflection from 4.1.0-beta-23225 to 4.0.10
Acme.PCLEFClassLib (>= 1.0.0) -> EntityFramework.Core (>= 7.0.0-rc1-final) -> Microsoft.Extensions.Logging.Abstractions (>= 1.0.0-rc1-final) -> System.Reflection (>= 4.1.0-beta-23225)
Acme.PCLEFClassLib (>= 1.0.0) -> EntityFramework.Core (>= 7.0.0-rc1-final) -> System.Reflection (>= 4.0.10)
Version conflict detected for System.Collections.
Acme.PCLEFClassLib (>= 1.0.0) -> EntityFramework.Core (>= 7.0.0-rc1-final) -> System.Collections (>= 4.0.11-beta-23516)
Acme.PCLEFClassLib (>= 1.0.0) -> Microsoft.NETCore.Portable.Compatibility (>= 1.0.0) -> Microsoft.NETCore.Runtime (>= 1.0.0) -> Microsoft.NETCore.Runtime.CoreCLR-x86 (>= 1.0.0) -> System.Collections (= 4.0.10).
EntityFramework.Core 7.0.0-rc1-final is not compatible with .NETPlatform,Version=v5.0.
Some packages are not compatible with .NETPlatform,Version=v5.0.
Ix-Async 1.2.5 is not compatible with DNXCore,Version=v5.0.
Remotion.Linq 2.0.1 is not compatible with DNXCore,Version=v5.0.
Some packages are not compatible with DNXCore,Version=v5.0.
Ix-Async 1.2.5 is not compatible with DNXCore,Version=v5.0 (win7-x86).
Remotion.Linq 2.0.1 is not compatible with DNXCore,Version=v5.0 (win7-x86).
Some packages are not compatible with DNXCore,Version=v5.0 (win7-x86).
Ix-Async 1.2.5 is not compatible with DNXCore,Version=v5.0 (win7-x64).
Remotion.Linq 2.0.1 is not compatible with DNXCore,Version=v5.0 (win7-x64).
Some packages are not compatible with DNXCore,Version=v5.0 (win7-x64).
Package restore failed for 'Acme.PCLEFClassLib'.
Package restore failed. Rolling back package changes for 'Acme.PCLEFClassLib'.
========== Finished ==========

实际上是否可以在可移植类库中安装 EF Core?如果是这样 - 我需要对项目做什么?

我只是觉得我在绕圈子寻找在线解决方案。

更新 1

尝试在我的 PCL 中安装 EntityFramework.MicrosoftSqlServer。

鉴于在创建标准 ASP Net Core 项目时安装了 EntityFramework.MicrosoftSqlServer - 它使用 dnxcore50 框架。如果我在 PCL 中做类似的事情,怎么会提示:
EntityFramework.MicrosoftSqlServer 7.0.0-rc1-final is not compatible with .NETPlatform,Version=v5.0.

如果是这种情况,那么它如何安装到 ASP NET Core 项目中。

更新 2

我创建了一个针对 .NET 4.5.1 的新 PCL。然后我通过 Nuget 将 EntityFramework.MicrosoftSqlServer 7.0.0-rc1-final 安装到其中,并且安装没有问题。虽然我现在不能重复这一点。我刚刚创建了一个单独的解决方案,其中包含一个针对 ASP NET Core 和 .NET 4.5.1 的 PCL 库项目。现在输出以下内容:
Attempting to gather dependency information for package 'EntityFramework.MicrosoftSqlServer.7.0.0-rc1-final' with respect to project 'AnotherPCLEFFUP', targeting '.NETPortable,Version=v4.5,Profile=Profile75'
Attempting to resolve dependencies for package 'EntityFramework.MicrosoftSqlServer.7.0.0-rc1-final' with DependencyBehavior 'Lowest'
Resolving actions to install package 'EntityFramework.MicrosoftSqlServer.7.0.0-rc1-final'
Resolved actions to install package 'EntityFramework.MicrosoftSqlServer.7.0.0-rc1-final'
Install failed. Rolling back...
Package 'EntityFramework.MicrosoftSqlServer.7.0.0-rc1-final' does not exist in project 'AnotherPCLEFFUP'
Package 'EntityFramework.MicrosoftSqlServer.7.0.0-rc1-final' does not exist in folder 'K:\TFS\TestApps\Projects\DotNetCore\AnotherPCLEFFUP\packages'
Invalid portable frameworks.

安装 EntityFramework.Core.7.0.0-rc1-final 也会发生同样的情况。

公平地说,这完全令人沮丧。也许我今天吠错了树,或者只是狂吠。

最佳答案

我不知道这将如何满足您的可移植类需求,但对于常规 .NET(4.6 或其他),我发现了以下内容。 (见下面的咆哮)

所以我不知道这是否是“犹太洁食”,但这个来源现在有效:

Add nuget package source (Options - Package Sources - Add (plus)



如果要为 SqlServer 安装,只需安装:

Microsoft.EntityFrameworkCore.SqlServer



或者选择另一个顶级依赖项,它将获取所有其他需要的依赖项。

*[开始咆哮]
那只是通过在 EF github 讨论中四处寻找。他们没有实际的描述来解释现在该做什么,这是完全不可原谅的。他们应该删除“RC”1 版本,其中包含所有错误,并且其设计与他们现在的工作完全不同,并且已经超过 5 个月没有更新(!这是与“预-release' 标记已检查!),完全来自 nuget。

让我补充一点:我喜欢这些人所做的一切,我喜欢新的部分,很多非常好的东西。但是我们不应该因为一个所谓的仍然被标记为“RC”的版本而被搁置半年,因为它充满了已经在彻底重新设计的 rc2 版本中修复的错误,他们还没有公开。
[/结束咆哮]*

关于entity-framework - 尝试使用面向 .Net 4.6.1 的可移植类库安装 EF Core,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36982847/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com