【问题标题】:How to install Entity Framework of standard library如何安装标准库的实体框架
【发布时间】:2019-03-02 05:23:24
【问题描述】:

我使用 NuGet 安装了 EF,并且项目的依赖项文件夹显示 EF 可能不兼容的警告。我应该安装哪个包来使用标准库中的 EF?

我安装了这个 EF:

这是解决方案的另一个项目中使用的程序集:

【问题讨论】:

  • 您尝试安装哪个实体框架包?跨平台的是 EF Core
  • 不知道,我还有一个项目,可以通过System.Data.Entity使用
  • 那不是 EF Core。那是较旧的 EF 6.2,只能在 Full framewokr 项目中使用。删除该包并添加Microsoft.EntityFrameworkCore
  • 我需要 Microsoft.EntityFrameworkCore.SqlServer 吗?

标签: visual-studio entity-framework nuget


【解决方案1】:

那是因为您为 EF 6.2 添加了包,该包仅针对完整框架。它不适用于 .NET Core 运行时。

您需要使用Entity Framework Core。这是针对 .NET Standard 完全重写的,并解决了人们在使用旧实体框架时遇到的许多问题。

由于它以 .NET Standard 为目标,因此它can be used in all runtimes - .NET Core、完整框架 UWP 项目。 它的新功能也使其成为完整框架的绝佳选择。例如,EF Core 2.2 通过使用开源 NetTopologySuite 包添加了spatial types support。甚至 EF 6.2 也从未支持空间类型。

Entity Framework Core 被分解成各种包,使您能够只将您需要的驱动程序/功能添加到您的项目中。甚至 SQL Server 提供程序也可作为单独的包使用。提供者列表可用here

幸运的是,每个提供程序都引入了所有其他必需的依赖项,因此您需要做的就是包含一个提供程序来引入所有其他必需的包作为传递依赖项。这意味着,它们不会在 Visual Studio 或 csproj 文件中显示为依赖项。不再有 50 个我们不知道该怎么办的包引用!

【讨论】:

    【解决方案2】:

    我应该安装哪个包来使用标准库中的 EF?

    正如 Panagiotis 指出的那样,您应该使用 Microsoft.EntityFrameworkCore 而不是 EntityFramework

    如果你从 nuget.org,EntityFrameworkMicrosoft.EntityFrameworkCore 下载这两个包,然后使用 NuGet 包资源管理器打开它(你可以从 Microsoft Store 获得它。):

    所以,如果你想使用标准库中的 EF,你应该安装 nuget 包Microsoft.EntityFrameworkCore

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-05
      • 1970-01-01
      • 2012-10-13
      • 2017-12-31
      • 1970-01-01
      • 1970-01-01
      • 2011-12-24
      • 1970-01-01
      相关资源
      最近更新 更多