(摘)Entity Framework Core 2.1带来更好的SQL语句生成方案
微软发布了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直接更新,以确保可以加载正确的版本。
上一篇: 笔记本在开机到桌面后会出现一秒的黑屏,之后正常进到桌面的解决
下一篇: 字符串算法之 AC自动机