Entity Framework Core 2.1 带来更好的 SQL 语句生成方案

  • Jeff Martin
  • 无明

2018 年 6 月 5 日

话题:.NET语言 & 开发

微软发布了 Entity Framework Core2.1,为 EF 开发者带来了很多期待已久的特性。EF Core 2.1 增加了对 SQL GROUP BY 的支持,支持延迟加载和数据种子等。

EF Core 2.1 的第一个重要新增特性是将 GroupBy 操作符翻译成包含 GROUP BY 子句的 SQL。缺乏这种支持被认为是 EF Core 2.0 中的一个重大疏漏。同样,对延迟加载的支持也被纳入到 EF Core 2.1 中。为了支持延迟加载,现在实体的构造函数可以包含参数。在定义好构造函数后,EF Core 可以在创建实体实例时调用此构造函数。

EF Core 现在支持以编程方式操作包含初始数据的数据库。与 EF6 不同的是,“种子数据与实体类型相关联,成为模型配置的一部分”。不过,EF Core 2.0 的一些未解决问题在 2.1 中仍然未得到解决。例如,Table Per Type 仍然是一个未解决的问题。

EF 的打包在本版本中得到简化,命令行工具现在是.NET Core SDK 的一部分。开发者可以通过 dotnet ef 使用这些命令,并且在项目中引用它们(DotNetCliToolReference)现在不是必需的。不过,这些命令仅支持 EF Core 2.0/2.1,因此如果需要支持 EF Core 1.0/1.1,需要小心使用这些命令。

EF Core 2.1 可通过安装.NET Core 2.1 SDK 获得。由于 EF Core 2.1 符合.NET Standard 2.0,因此它可在.NET Core 2.0 和.NET Framework 4.6.1(或更高版本)上运行。

在从以前的版本升级时,请注意,为数据库厂商提供支持的软件包也应该要升级。使用专为 EF Core 2.0 设计的数据库驱动程序在 EF Core 2.1 中会出现问题,这些问题并不会马上引起人们的注意,因此为了保险起见,最好进行更新。微软建议通过 dotnet add package 直接更新,以确保可以加载正确的版本。

查看英文原文Entity Framework Core 2.1 Release Adds Improved SQL Query Generation

.NET语言 & 开发