NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

Entity Framework 7 支持批量操作和 JSON 列

作者:Edin Kapić

  • 2023-01-12
    北京
  • 本文字数:970 字

    阅读完需:约 3 分钟

Entity Framework 7支持批量操作和JSON列

微软于2022年11月连同.NET 7 发布了用于.NET Framework 的对象到数据库映射器库 Entity Framework(EF)Core 7。新版本提升了保存数据的性能,支持 JSON 列操作,支持高效的批量操作,并包含许多小的修复和改进。EF7 Core 可用于.NET 7 和.NET 6。

 

微软于 2022 年 11 月 8 日通过NuGet包的形式发布了 EF7。根据重大变更文档所述,EF Core 7 中最重要的变化是默认将 SQL Server 连接视为加密连接。开发者要么必须在他们的机器上配置有效的证书,要么显式放松安全限制,否则的话在 EF6 中有效的连接字符串在 EF7 中将会抛出异常。

 

众所周知,EF7 Core 的一个改进是在使用 SaveAsync 方法保存数据时的性能提升。在某些情况下,与同一机器上的 EF6 Core 相比,性能提升超过50%

 

EF7 Core 支持将数据库中包含JSON文档的文本列作为查询对象。作为数据库查询的一部分,开发者可以对文档中的 JSON 属性进行过滤和排序。EF7 提供了对 JSON 列的通用支持和针对 SQL Server 的具体实现。

 

针对数据库的批量操作,例如批量更新或删除,EF7 对其进行了重写。标准的 SaveChangesAsync 方法会影响多条记录,SQL 执行结果会被载入内存。EF7 现在有两个新方法,ExecuteUpdateAsync和ExecuteDeleteAsync,它们会立即在服务器端执行批量操作,不会将任何实体加载回内存。

 

默认情况下,EF Core 将.NET 类型的继承层次结构映射到单张数据库表,这种映射策略叫作每层次表(Table-per-Hierarchy,TPH)。EF Core 5 加入了每类型表(Table-per-Type,TPT)策略,层次结构中的每一个类型都被映射到一张数据库表。EF Core 7加入了每具体类型表(Table-per-Concrete-Type,TPC)策略,每个非抽象类型映射到一张数据库表,而抽象类型列被添加到抽象类型的具体实现的表中。

 

EF7 还带来了其他改进,比如在数据库优先的反向工程中支持自定义T4模板,支持覆盖和更改默认模型约定改进的拦截器和事件插入、更新和删除到存储过程的映射

 

在过去,.NET 开发人员认为 Entity Framework 笨重且缺点多多,但现在的新版本被认为是一种高效且具有容错能力的ORM框架

 

随着 EF7 的发布,EF8的路线图中增加了更多的 JSON 列增强,支持.NET 值对象,并能够将未映射的类型作为查询结果返回。

 

原文链接

https://www.infoq.com/news/2022/12/ef7-core-json/


相关链接:

InfoQ 2022 年趋势报告:.NET篇

微软将于年底终止对 .NET Core 3.1 的支持

.NET分布式缓存中的发布和订阅模式

2023-01-12 08:007987

评论

发布
暂无评论
发现更多内容

FastApi-08-路径参数校验

Python研究所

FastApi 8月日更

python--语句的多样性

加里都好

模块四作业:千万级试卷结构设计

buoge

架构实战训练营模块四作业

NewBranSTONE

架构实战营

iOS官方瘦身方案ODR(二):换肤系统改造|践行 On-Demand Resources

LabLawliet

ios 独立开发者 apple 优化技巧 8月日更

kubernetes入门:可视化界面dashboard极简安装教程

小鲍侃java

8月日更

架构实战营基于redis哨兵模式的考试数据存储设计

慕溶枫

#架构实战营

番外3. Python OpenCV 中如何绘制各种图形?

梦想橡皮擦

8月日更

🏆【Git 实战专题】你知道git rebase如何让代码提交变得清晰明白吗?

洛神灬殇

git Rebase git rebase 8月日更

阿里云-云开发平台计算篇——加强应用本身的计算能力

若尘

阿里云 云开发 8月日更

毕业总结

梦寐凯旋

#架构实战营

电商秒杀系统设计方案

Lane

架构实战营模块4作业

子豪sirius

架构实战营

Python代码阅读(第6篇):根据给定的函数对列表中的元素进行分组

Felix

Python 编程 Code Programing 阅读代码

架构实战营模块 4 作业指导

华仔

架构实战营

千万级学生管理系统试卷存储场景

张文龙

#架构实战营

prometheus介绍与安装

Rubble

Prometheus 8月日更

golang--切片(slice)

en

slice Go 语言 切片

模块四作业

king

架构实战营第四周作业——考试试卷存储

发酵的死神

架构实战营

毕业设计

青鸟飞鱼

架构实战营总结

Lane

Vue进阶(十九): ES6 箭头函数

No Silver Bullet

Vue 箭头函数 8月日更

理解 defer、panic 和 recover

Rayjun

Go 语言

十大排序算法--计数排序

Ayue、

排序算法 8月日更

软件测试基础面试常问问题

程序员阿沐

面试 软件测试 自动化测试 经验分享 测试工程师

printf函数的常用格式化输出

Changing Lin

8月日更

手撸二叉树之二叉树的最大深度

HelloWorld杰少

数据结构与算法 8月日更

【Vue2.x 源码学习】第二十九篇 - diff算法-节点比对| 8月更文挑战

Brave

源码 vue2 8月日更

搜索二维矩阵②

Memorys

Java 面试 算法

写作 7 堂课——【3. 碎片式写作】

LeifChen

时间管理 写作技巧 8月日更 碎片化 心流

Entity Framework 7支持批量操作和JSON列_编程语言_InfoQ精选文章