当前位置 博文首页 > 码农译站:EF Core 6.0的新计划

    码农译站:EF Core 6.0的新计划

    作者:码农译站 时间:2021-01-30 18:17

    今天,我们很兴奋地与你分享Entity Framework 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核心代码进行注释,以使用可空引用类型。

    实验和调查

    EF团队计划在EF Core6.0的框架内投入时间在两个领域进行实验和调查。这是一个学习的过程,因此在6.0版本中没有具体的交付计划。

    • SqlServer.Core
      • 这是一个与社区合作的实验,目的是确定在高性能SQL Server驱动程序中现代.net特性的潜力。
    • GraphQL
      • 我们计划对该领域进行研究,并与社区合作,找到改进.net中使用GraphQL的体验的方法。

    了解更多

    这篇文章是对EF Core 6.0计划的一个简要总结。请查看完整的计划以获得更多信息。

    建议

    你对计划的反馈很重要。在GitHub上为某个问题投票是表明该问题重要性的最好方式。然后,这些数据将被输入到下一个版本的计划过程中。

    另外,如果你认为我们遗漏了一些对EF Core 6.0至关重要的东西,或者关注的方向是错误的,请评论这篇文章。

    欢迎关注我的公众号,如果你有喜欢的外文技术文章,可以通过公众号留言推荐给我。

     

    原文链接:https://devblogs.microsoft.com/dotnet/the-plan-for-entity-framework-core-6-0/

     

    bk