EF Core 6.0的新计划

今天,我们很兴奋地与你分享Entity Framework Core 6.0的计划。

EF Core 6.0的新计划

这个计划汇集了许多人的意见,并概述了我们打算在哪里以及如何优化实体框架(EF Core) 6.0版本。这个计划并不是固定不变的,并且会随着我们在这个版本上的工作而发展。这个计划包括来自像你一样的人的反馈,所以请让我们知道你的想法!

 

一般信息

 

EF Core 6.0EF Core 5.0之后的下一个版本,目前计划于202111月与.net 6同时发布。EF Core 6.0将与.net 6一起作为一个长期支持(LTS)发布。

 

EF Core 6.0在发布时可能会以.net 6为目标。它不太可能支持任何.net Standard版本。它不能在.net Framwork上运行。

主题

高要求的功能

和往常一样,规划过程中的主要投入来自GitHub上的投票。对于EF Core 6.0,我们计划致力于以下高度要求的特性:

SQL Server临时表

允许通过迁移创建临时表,以及允许通过LINQ查询访问历史数据。

JSON

引入可以由任何数据库提供者实现的通用JSON模式。

JSON列支持将实现SQL ServerSQLite(注意,PostgreSQLMySQL提供程序已经支持JSON列了。)

ColumnAttribute.Order

在创建带有迁移或确保重新创建的表时,允许对列进行任意排序。

性能

虽然EF Core总体上比EF6快,但仍有一些性能上的显著提升的地方。我们计划在EF Core 6.0中解决这些问题,同时改善我们的perf基础设施和测试。

性能基础结构和新测试

改进性能测试的基础设施,添加新的测试和修复容易实现的目标。

编译模型

编译后的模型将提高启动性能,并且在访问模型时通常具有更好的性能。

TechEmpower Fortunes

我们计划在TechEmpower Fortunes测试中达到Dapper的表现。(这是一个重大的挑战,可能不会完全实现。尽管如此,我们还是会尽可能地接近。)

Linker/ AOT

我们将继续研究如何让EF Core更好地使用LinkerAOT。我们不期望在6.0的框架内完全缩小差距,但我们希望取得重大进展。

迁移和部署

在对EF Core 5.0进行调查之后,我们计划引入对管理迁移和部署数据库的改进支持。这包括两个主要领域:

迁移包

迁移包将为部署EF Core迁移提供一个简单、健壮的机制。

管理迁移

Wwe计划改进EF核心迁移的工具和项目/装配管理。

改进现有功能并修复bug

EF6查询

我们计划缩小与EF6之间的查询差距,使所支持的EF Core查询成为所支持EF6查询的真正超集。

值对象

我们计划引入一种更好的体验,专注于领域驱动设计中值对象的需求。

这种方法将基于值转换器,而不是已被证明不适合的实体。

Cosmos Provider

我们正在积极收集关于在EF Core 6.0中对Cosmos Provider做哪些改进的反馈.

向应用程序公开模型构建约定

模型构建约定目前由数据库provider控制。在EF Core 6.0中,我们打算允许应用程序hook并更改这些约定。

bug平衡(ZBB)

我们计划在EF Core 6.0框架内修复所有未解决的非阻塞bug

其他较小的特点

对非导航集合进行拆分查询

在逆向工程中检测简单的连接表并创建多对多关系

在SQLiteSQL服务器上完成完整/自由文本搜索

SQL Server空间索引

为模型中给定类型的任何属性指定默认转换的机制/API

使用ADO.NET中新的批处理API

.net集成

EF的核心团队也在研究几个相关但独立的.net数据技术。特别是,我们计划在以下方面开展工作:

增强System.Data

新的批处理API的实现

继续与其他.net团队和社区合作,以理解和发展ADO.NET

对系统跟踪的诊断源进行标准化

增强Microsoft.Data.Sqlite

连接池

Prepared statements

空引用类型

我们将对EF核心代码进行注释,以使用可空引用类型。

实验和调查

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyxzyw.html