微软.NET团队在博客上公布了有关 Entity Framework Core 8.0(也称为 EF Core 8 或 EF8)的未来规划。EF Core 8 是 EF Core 7 之后的下一个版本,这将是一个长期支持版本;计划于 2023 年 11 月与 .NET 8 同时发布。该公司表示,暂时没有发布 EF Core 7.1 的计划。
IMPORTANT 此计划并非承诺;它将随着我们在整个发布过程中不断学习而发展。EF8 目前没有计划的一些事情可能会被拉进来,但目前 EF8 计划的一些事情也可能会被搁置。
Entity Framework 现已被广泛使用,微软首席软件工程经理 Arthur Vickers 日前在一个在线社区会议上的发言称,EF7 已经从 NuGet 被下载超过 100 万次。
公告指出,随着对 EF Core 和 .NET 平台的不断发展,EF8 将包含少量的破坏性变化。其目标是在不使平台停滞不前的情况下,尽可能地减少破坏性变化。EF8 将主要关注以下方面:
高度要求的功能
JSON 列:建立在 EF7 JSON 支持的基础上,进一步支持 document/relational 混合模式。在 EF8 中计划为 SQLite 提供支持,并与其他 providers 的所有者合作,以调整所有 providers 对 JSON 列的支持。
值对象:应用程序可以在 EF 模型中使用 DDD 样式的值对象。在 EF8 中计划引入更好的体验,专注于领域驱动设计中价值对象的需求。这种方法将基于价值转换器而不是拥有的实体。
未映射类型的 SQL 查询:应用程序可以执行更多类型的 SQL 查询,而无需下降到 ADO.NET 或使用第三方库。目前,SQL 查询必须返回模型中的一个类型或一个标量类型。在 EF8 中,计划允许直接返回 EF 模型中未包含的类型的 SQL 查询。
云原生和设备
AOT and trimming with EF Core:小型、快速启动的 EF Core 应用程序,没有动态代码生成。
AOT and trimming for ADO.NET:Low-level 数据访问可用于云原生应用程序。
性能:Woodstar 将是在 .NET 8 timeframe 内进行的主要性能推动。同时,微软方面也计划在其他一些领域开展性能工作,如上述的 JSON 列中。此外,关于 AOT 和 trimming 的工作也与性能有很大关系。
Woodstar:为 .NET 应用程序快速、完全托管地访问 SQL Server 和 Azure SQL。开发团队计划在 .NET 8 timeframe 内加大对 Woodstar 的投资,暂定目标是在发布结束时使用 Woodstar 运行 TechEmpower Fortunes 基准测试。值得注意的是,对 Microsoft.Data.SqlClient 的投入不会改变。它将继续作为连接到 SQL Server 和 Azure SQL 的推荐方式,无论是否使用 EF Core。它将继续支持引入的新 SQL Server 功能。
Visual Tooling
Visual Studio 中 First-class T4 templates:在 Visual Studio 中跨多个区域利用 T4 templating。计划为 Visual Studio 带来更好的 T4 编辑体验,以便它可以用于 EF 和其他模板。
Visual Studio 中的 EF Core Database First:Visual Studio 中开箱即用的 Database First 工具。计划使 EF Core 工具在 Visual Studio 中易于发现。这项工作的主要重点是从现有数据库构建(逆向工程)EF 模型,也称为 “Database First”,但也可能包括其他领域。
开发者体验:EF8 计划的大部分工作涉及在多个领域以许多小的方式改进开发人员体验。
更多详情可查看官方文档:https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-8.0/plan