写点什么

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

评论

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

今天直播:datop——用在冷热内存识别和跨 numa 访存有多优秀?

OpenAnolis小助手

Linux 开源 技术直播

iuap助力明日控股打造大宗贸易业财一体化中台

用友BIP

用友 用友iuap

基于 Nebula Graph 构建图学习能力

NebulaGraph

数据库 开源 分布式图数据库 机器学习数据库

阿里开源 支持10万亿模型的自研分布式训练框架EPL(Easy Parallel Library)

阿里云大数据AI技术

深度学习 开源 分布式 框架

论CTO的作用

hongfei

项目管理 个人提升 工程管理

华云数据加入龙蜥社区,推动开源产业快速有序成长

OpenAnolis小助手

云计算 Linux 开源 操作系统 国产

浅析人脸识别算法及其应用

得物技术

机器学习 算法 人脸识别 视觉 人脸

听见“SHE”说丨OpenHarmony Ladies不被定义的“AWESOME”

OpenHarmony开发者

OpenHarmony 热门活动 女性力量

【技术分享】猪八戒网DevOps之Java组件安全检测

八戒技术团队

Java DevOps 安全检测

诚邀参与 | OpenHarmony校园极客秀征文活动

OpenHarmony开发者

极客 OpenHarmony 征文活动

面试突击29:说一下线程池7个参数的含义?

王磊

Java 面试 java面试

搭建 Restful Web 服务

码语者

REST API

使用 Docker 一键启动环境安装 ModStart

ModStart开源

WhiteSource SAST:下一代应用程序安全

龙智—DevSecOps解决方案

静态应用安全测试 SAST

Android技术分享| anyLive 开源项目

anyRTC开发者

android 音视频 开源项目 移动开发 视频直播

【有奖体验】:2分钟自动化部署2048小游戏到ECS

阿里云云效

阿里云 云原生 CI/CD 自动化部署 ECS

一文看懂JVM运行时内存分布

黄林晴

JVM

java培训:判断元素是不是在集合里的方法

@零度

JAVA开发

Java最最基础入门知识总结回顾

逆锋起笔

Java java面试 javase 3月月更

天翼云SD-WAN斩获首批“SD-WAN 2.0 SASE”权威认证

天翼云开发者社区

SD-WAN

上手测试GaussDB(for Redis) 和开源 Redis,只为推荐质优价廉的Redis

华为云开发者联盟

数据库 redis 开源 GaussDB(for Redis) 开源Redis

Apsara Stack 技术百科|云+应用一体化混合云全景智能化监控平台

科技互联网 企业数字化转型 混合云技术 混合云架构

华为云携手甘肃省医疗保障局,以数字科技为智慧医疗注入新动能

华为云数据库小助手

华为云数据库 华为云DRS 智慧医疗

量子时代已来,与时代接轨,从这本书开始!

博文视点Broadview

15张图呈现数据库事务背后的并发原理

华为云开发者联盟

数据库 事务 并发 隔离

极光笔记 | 基于Robotframework框架进行服务端SDK的自动化(C++版本)

极光GPTBots-极光推送

c++

低代码实现探索(三十六)表达式组件—基础组件的组件

零道云-混合式低代码平台

大数据培训:偶然看到大数据面试题,拿出来分享

@零度

大数据 面试题

Python从ECS内网拉取OSS数据

梦想橡皮擦

3月月更

使用AppleScript批量删除Mac中的信息

CRMEB

如何设置Perforce类型映射(P4类型映射)

龙智—DevSecOps解决方案

版本控制 游戏开发 二进制文件 游戏引擎 虚拟引擎

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