写点什么

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

评论

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

Flutter 基于 WebSocket 实现即时通讯

岛上码农

flutter ios 安卓开发 跨平台开发 5月月更

小程序如何与智能电视相结合?

Geek_99967b

小程序

flutter系列之:flutter架构什么的,看完这篇文章就全懂了

程序那些事

flutter 架构 程序那些事 5月月更

小程序经济,已经开始制约中小企业的服务及合作

Geek_99967b

小程序

[protobuf 笔记]02-protobuf 语法

南吕

protobuf

富滇银行完成数字化升级|OceanBase数据库助力布局分布式架构中台

OceanBase 数据库

oceanbase 富滇银行

融云斩获2022年中国信创产业拳头奖“最佳通信与视频会议品牌”大奖

融云 RongCloud

Web 编程入门:什么是Web API?

宇宙之一粟

Web API 5月月更

在FinClip Hackathon中夺冠是一种什么样的体验?

FinClip

小程序 黑客马拉松 finclip

幸运赛车赛马游艇游戏开发逻辑分析

开发微hkkf5566

模块3-外包学生管理系统架构文档

Fan

「架构实战营」

所有资产都在涨,只有比特币在挨打

CECBC

有IDE工具能让小程序快速运行在自有App上?

Speedoooo

ide 开发者工具 开发工具 小程序ide

激活数字经济澎湃动能

CECBC

如何获得一场黑客马拉松的胜利?听听AWS特约评委怎么说

FinClip

小程序 黑客马拉松 finclip

过去一周行业热点|Hoo labs开启OUTSPACE项目支持

区块链前沿News

Hoo labs

Flutter的跨端优势

Geek_99967b

flutter 小程序

竟然能在App里拉起一个小程序?

Geek_99967b

小程序

内存性能测试工具

穿过生命散发芬芳

5月月更 内存性能测试

存储厂商旌存半导体加入龙蜥社区

OpenAnolis小助手

芯片 龙蜥社区 CLA 旌存半导体

[protobuf 笔记]03-Protobuf 生成各语言类库

南吕

protobuf

leetcode 4. Median of Two Sorted Arrays 寻找两个正序数组的中位数(困难)

okokabcd

LeetCode 查找

linux删除目录下文件的几种方法

入门小站

什么是微幕小程序

Geek_99967b

小程序

不改一行代码,将微信小程序转成商业App?

Geek_99967b

小程序

【网络安全】SQL注入新思维之webshell提权

网络安全学海

网络安全 信息安全 渗透测试 SQL注入 漏洞挖掘

学会Pandas这六大函数,数据分析够用了

happymove

Python 数据分析 pandas Python数据分析 5月月更

满足未来8-10年业务需求,云南红塔银行核心系统升级

OceanBase 数据库

oceanbase 红塔银行

模块七

ASCE

[protobuf 笔记]01- 认识 protobuf

南吕

protobuf

中国AI:在"相牛班"的春天里

白洞计划

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