速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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:0010921

评论

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

三大特性,多个场景,Serverless 应用引擎 SAE 全面升级

阿里巴巴云原生

阿里云 Serverless SAE 阿里云云原生 应用引擎

FlyFish2.0版本后端源码学习笔记

云智慧AIOps社区

前端 大前端 数据可视化 大屏可视化

答题交互功能深入研究

CRMEB

从服务端生成Excel电子表格(Node.js+SpreadJS)

葡萄城技术团队

SpreadJS 前端表格

探讨企业知识管理的困惑

小炮

企业知识管理

Docker下的OpenResty三部曲之二:细说开发

程序员欣宸

Docker 5月月更

增强现实(AR)技术在企业管理软件中的一个实际创新案例

汪子熙

AR SAP 虚拟现实 增强现实 5月月更

自开发 Web 应用如何使用 SAP Customer Data Cloud 实现自定义登入功能

汪子熙

用户权限 第三方登录 SAP 登录验证 5月月更

浅析微服务全链路灰度解决方案

阿里巴巴云原生

阿里云 微服务 云原生 灰度

专访朱雷:昔日的游戏少年,如今的Python工匠

图灵教育

Python 程序员 图灵访谈

前端生成PDF,让后端刮目相看

葡萄城技术团队

PDF pdf.js

Apache ShardingSphere 遇上得物“彩虹桥”

SphereEx

数据库 开源 ShardingSphere SphereEx apache 社区

C++搭建集群聊天室

爱好编程进阶

Java 程序员 后端开发

【高并发】高并发环境下诡异的加锁问题(你加的锁未必安全)

冰河

并发编程 多线程 高并发 协程 异步编程

java培训Nginx 快速入门

@零度

JAVA开发

封装格式介绍

Loken

音视频 5月月更

租房开放源码

源字节1号

租房小程序

druid源码学习三-继续探究DruidDataSource类init方法

Nick

Apache Druid

如何让你的 WordPress 网站更安全

海拥(haiyong.site)

WordPress 5月月更

【刷题第七天】15 三数之和

白日梦

5月月更

从服务端生成Excel电子表格(GcExcel + SpreadJS)

葡萄城技术团队

服务器端开发 前端表格控件 测试比较

C语言_结构体总结

DS小龙哥

5月月更

网站开发进阶(六十一)详解js中Number()、parseInt()和parseFloat()的区别

No Silver Bullet

5月月更 Number() parseInt() parseFloat()

【直播回顾】OpenHarmony知识赋能五期第四课——子系统音频解读

OpenHarmony开发者

OpenHarmony 多媒体

【大数据培训】面试中数据仓库重要概念

@零度

数据仓库 大数据开发

云原生小课堂 | 如何打造一款软硬兼施、多功能、零损耗的云原生网络方案

York

云原生 性能 智能网卡vpc 容器网络方案

Autograd解析|OneFlow学习笔记

OneFlow

人工智能 深度学习 数学原理 Autograd模块

你肯定听说过requests,但你知道2022年有一个比 requests 还牛的爬虫库吗?

梦想橡皮擦

5月月更

使用 OData 实施 SAP 系统与第三方系统集成的步骤概述

汪子熙

系统集成 SAP OData 5月月更 第三方系统

web前端培训单元测试入门知识分享

@零度

单元测试 web前端开发

20年清华扫地僧,整理的Storm、Spark学习笔记

爱好编程进阶

Java 程序员 后端开发

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