写点什么

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

评论

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

Yarn资源调度框架

Geek_qsftko

YARN

ansible 循环

耳东@Erdong

ansible 8月日更 ansible 循环

Linux 虚拟文件系统(VFS)分析

赖猫

Linux 文件系统

批量SQL优化实战

码农参上

sql SQL优化 8月日更

一文读懂混合型智能合约:如何结合链上与链下计算资源?

CECBC

数字化转型助力构建银行新型产品管理

CECBC

C++ 中的 Pipeable 编程

hedzr

c++ pipeable

上游思维:谁来为没有发生的事情买单?

石云升

读书笔记 8月日更 上游思维

扫码出入登记小程序

清风

小程序

博客升级之在线代码编辑器

devpoint

vscode 编辑器 8月日更

ndk-build 脚本

Changing Lin

8月日更

架构训练营第 1 期 模块五作业

高远

fil币怎么挖矿?fil挖矿怎么挖?

fil挖矿怎么挖 fil币怎么挖矿

Vue进阶(五十三):vue-cli 脚手架 webpack.prod.conf.js 配置文件详解

No Silver Bullet

Vue 8月日更

Python代码阅读(第15篇):列表求交集

Felix

Python 编程 Code Programing 阅读代码

前端基础六之jQuery效果

ベ布小禅

8月日更

探索区块链C端市场 艺术品、卡牌、音乐皆可NFT

CECBC

【六顶思考帽】蓝色思考帽

LeifChen

8月日更 创新思维 蓝色思考帽

高尚小区

escray

生活记录 8月日更

仿TP钱包开发,去中心化钱包源码开发

网络攻防学习笔记 Day112

穿过生命散发芬芳

网络安全 8月日更

磁场消灭癌细胞,是一种新的抗癌方案吗?

脑极体

云与AI真的能互相成就?还是最好各自独立行走?

白洞计划

☕【Java技术指南】「并发原理专题」AQS的技术体系之CLH、MCS锁的原理及实现

码界西柚

AQS 8月日更 MCS锁 CLH锁

Go,一文搞懂 string 实现原理

微客鸟窝

Go 语言 8月日更

质量基础设施一站式服务平台搭建,NQI平台搭建

zookeeper集群怎么搞?

卢卡多多

zookeeper 8月日更

先「干」,就对了

非著名程序员

个人成长 职场 认知提升 8月日更

从0开始的TypeScriptの十二:装饰器

空城机

JavaScript typescript 大前端 8月日更

为什么要选择filecoin矿机挖矿?为什么不直接购买filecoin?

分布式存储 IPFS Filecoin fil挖矿 fil矿机

记一次勒索病毒后的应急响应

网络安全学海

黑客 网络安全 信息安全 渗透测试 安全漏洞

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