文 | 白开水

出品 | OSC开源社区(ID:oschina2013)

微软方面公布了有关 Entity Framework Core 7.0(也称为 EF Core 7 或 EF7)的未来规划。该计划汇集了许多相关意见,并概述了微软打算在何处以及如何投资 EF7。

IMPORTANT 此计划并非承诺;它将随着我们在整个发布过程中不断学习而发展。EF7 目前没有计划的一些事情可能会被拉进来,但目前 EF7 计划的一些事情也可能会被搁置。

EF Core 7 是 EF Core 6 之后的下一个版本,目前计划于 2022 年 11 月与 .NET 7 同时发布。微软方面透露,其暂时没有 EF Core 6.1 相关的发布计划。

EF7 将与 .NET 支持策略保持一致,因此不会是长期支持 (LTS) 版本。EF7 当前面向 .NET 6,但可能会更新为计划中的 .NET 7 版本。EF7 不针对任何 .NET Standard 版本;有关更多信息,可参阅 the future of .NET Standard。且 EF7 不会在 .NET Framework 上运行。

EF7 将主要关注以下方面:

  • JSON 列:保存并查询存储在关系数据库列中的基于 JSON 的文档。

  • 批量更新:对许多数据库行进行高效的、基于预测的更新,无需将数据加载到内存中。

  • Lifecycle hooks:允许应用程序在 EF 代码中发生有趣的事情时做出反应。

  • Table-per-concrete-type (TPC) 映射:将层次结构中的实体映射到单独的表,而不会受到 TPT 映射的性能影响。

  • 将 CUD 操作映射到存储过程:使用存储过程来管理数据修改。

  • 值对象:应用程序可以在 EF 模型中使用 DDD 样式的值对象。

  • 使用值转换器时支持值生成:DDD 式封装的键类型可以充分利用自动生成的键值。

  • 未映射类型的原始 SQL 查询:应用程序可以执行更多类型的原始 SQL 查询,而无需下降到 ADO.NET 或使用第三方库。

  • 数据库脚手架模板:dotnet ef database scaffold生成的代码可以完全自定义。

此外,为 EF7 计划的大部分工作涉及改进 .NET 跨不同平台和域的数据访问体验。EF7 还将添加对许多场景的支持,允许更多应用程序从旧版 EF6 移植到 EF7。同时,微软方面还正在为从旧版 EF6 迁移到 EF Core 的应用程序制定全面的移植指南。

更多详情可查看官方博客:https://devblogs.microsoft.com/dotnet/announcing-the-plan-for-ef7/

END