【发布时间】:2020-01-02 19:19:17
【问题描述】:
在 ASP.NET Core (v 2.1.1) Web 应用程序中,我想将 EF Core 与 Cosmos DB 结合使用。为此,我需要添加 Microsoft.EntityFrameworkCore.Cosmos 包。
我可以安装old 2.2.0-preview3-35497 NuGet。
但是当前的3.0.0-preview8.19405.11 NuGet 抱怨
NU1202
Package Microsoft.EntityFrameworkCore.Cosmos 3.0.0-preview8.19405.11
is not compatible with netcoreapp2.1 (.NETCoreApp,Version=v2.1).
Package Microsoft.EntityFrameworkCore.Cosmos 3.0.0-preview8.19405.11
supports: netstandard2.1 (.NETStandard,Version=v2.1)
在我看来,这个错误听起来像是这个 EF Core 提供程序仅支持 .NET 而不是最新版本的 .NET Core。
这对于 EF Core 提供者来说是完全出乎意料的。
我是否正确理解了错误,为什么新版本中有如此奇怪的变化以及如何解决?
【问题讨论】:
-
您使用的是哪个版本的 .NET Core?我很确定您需要使用 .NET Core 3 preview8。
-
EF Core 3.0 包需要 .NET Core 3.0,这反过来又要求所有 ASP.NET Core 包也是 3.0 包。简而言之,如果您需要最新的 EF Core,则需要将您的应用升级到 ASP.NET Core 3.0 应用。
-
另外,.NET Standard 不是 .NET Framework。它基本上是一个接口层,允许 .NET Framework、.NET Core、Unity、Xamarin 等兼容版本之间的互操作。但是,.NET Standard 2.1(不要与 2.0 混淆)仅实现目前由 .NET Core 3.0 提供。
标签: asp.net-core entity-framework-core azure-cosmosdb