论ORM框架—EntityFrameworkCore

栏目: IT技术 · 发布时间: 3年前

内容简介:欢迎大家阅读《朝夕Net社区技术专刊》我们致力于.NetCore的推广和落地,为更好的帮助大家学习,方便分享干货,特创此刊!很高兴你能成为忠实读者,文末福利不要错过哦!

论ORM框架—EntityFrameworkCore

欢迎大家阅读《朝夕Net社区技术专刊》

我们致力于.NetCore的推广和落地,为更好的帮助大家学习,方便分享干货,特创此刊!很高兴你能成为忠实读者,文末福利不要错过哦!

01

PART

ORM框架

ORM(Object Relational Mapping)对象关系映射,是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。ORM其实即使以面向对象的思想来完成对数据库的操作;让更多的开发者降低了对数据库的学习成本,也正是因此,ORM框架是现在应用系统开发必须掌握的框架;

下图完整描述了ORM框架的特点:在面向对象语言程序中包含了OMR框架版块;通过对ORM的操作操作完成对数据库的增删改查。

论ORM框架—EntityFrameworkCore

论ORM框架—EntityFrameworkCore

现在业界常用的ORM有一下几种:

·         EntityFrameorkCore

·         Entityframework6

·         dapper

·         SqlSugar  (国内)

·         Dos.ORM  (国内)

·         Chloe  (国内)

·         StackExchange/Dapper  (国外)

·         Entity Framework (EF)  (国外)

·         NHibernate  (国外)

·         ServiceStack/ServiceStack.OrmLite  (国外)

·         linq2db  (国外)

·         Massive  (国外)

·         PetaPoco  (国外)

下面小编给大家介绍一下当前最流行的ORM--EntityFrameworkCore 框架的一些新特性

02

PART

EntityFrameworkCore3支持的新特性

Entity Framework (EF) Core 是轻量化、可扩展、 开源 和跨平台版的常用 Entity Framework 数据访问技术。EF Core 可用作对象关系映射程序 (O/RM),以便于 .NET 开发人员能够使用 .NET 对象来处理数据库,这样就不必经常编写大部分数据访问代码了。

Entity Framework (EF) Core支持了更多数据库,各个数据库分别对应的有各自的程序包:查询各个程序包对应支持的数据库引擎请查阅: https://docs.microsoft.com/zh-cn/ef/core/providers/?tabs=dotnet-core-cli

03

PART

EFCore3支持的新特点

1 、生成可执行文件

以前版本需要dotnet run运行项目,.net core 3支持直接生成目标平台的可执行文件。比如windows就是exe了,linux就+x了。

2 、生成依赖项的副本

以前版本在build时不会把NuGet的 工具 复制到目标目录,新版本会复制,但不包括razor和链接(链接的含义不太清楚)。

3 、本地工具

这个工具指NuGet的包,以前2.1支持全局的,新版本支持在目录里放置dotnet-tools.json清单文件,再使用dotnet tool restore命令重载。旧版本的工具依然依赖旧版本.net core SDK。

4 、支持WPF与Windows Froms

这个在很多国内新闻上已经介绍过了,事实上这些新闻只关注这一条。项目文件的Sdk设置为Microsoft.NET.Sdk.WindowsDesktop,添加true与或true即可添加支持。

5 、内建快速的JSON解析器

System.Text.Json.Utf8JsonReader,此物只向前读取(只进读取器),内存占用更少,常规性能是Newton JSON.net的二倍,这个很给力哦!应该会降低很多项目对Newton的依赖。

现在只有读取器,以后会有:JSON 写入、DOM(随机访问)、poco 序列化程序、poco 反序列化程序。

新推出的Span对高性能的字符分析程序都有很大的好处,包括Kestrel也从中受益。(Kestrel是微软跨平台基于libuv的高性能web服务器,目前应该是最强,不过我还没有其与h2o的比较信息)

6 、索引和范围

这应该是吸纳百家之长的又一力作了,Python对索引的支持非常到位,现在.net也支持了(C#8.0才开始有)。

[1,2,3][0] // 1

[1,2,3][^1] // 输出3,反向索引

[1,2,3,4,5][1..^2] // 输出[2,3,4] 范围索引

7 、异步流

又一个新语言特性,也是要C#8.0支持。IAsyncEnumerable, IEnumerable的异步版本。异步枚举器,可以在await foreach中途yield return。建议正式版再使用,现在还有bug。

8 、类型:SequenceReader 序列读取器

配合前面提到的Span,用于高效率,简单,低分配的读取分析文本,例如分割回车换行。

9、类型:MetadataLoadContext 元素据负载描述表

可以反射一些程序集的信息,但是不能执行程序集的Invoke。用于工具导向的软件,或者运行时激活某些功能的场景,用于释放程序集的文件锁或暂用内存之类的吧啦吧啦……

10、支持 Linux 上的 TLS 1.3 和 OpenSSL 1.1.1

使用SslStream的地方,会自动搜寻Linux所安装的最新版本OpenSSL,尽可能使用TLS1.3。因为TLS1.3更快,步骤更少。而且在SSL在Linux上的特定版本还有漏洞……OpenSSL的漏洞。

11、AES-GCM 和 AES-CCM加密算法支持

System.Security.Cryptography.AesGcm,System.Security.Cryptography.AesCcm可用。均使用AEAD算法( Authenticated Encryption with Association Data (AEAD) algorithms )。

12、加密密钥的导入导出

不用X.509证书即可导入标准的RSA、DSA、ECDsa、ECDiffieHellman公钥证书,与PKCS#8私钥证书。

13、Linux上支持串口

这个不懂,就是以前只有Windows支持,现在Linux也可以了。

14、优化了很多现有功能

字符串在字典中做key也会更高效,HttpClient支持无损压缩Brotli,很多都是不需要修改代码就可受益。

15、分层编译

.net core 2.1新功能,2.2预览版默认启动,2.2正式时改为可选,现在3.0默认开启……曲折。

这货可提高启动性能,更好的JIT性能,提高吞吐量。

EFCore3对应的新特性功能,配合在C#8开发,在应用系统中,使用起来更加便捷,也更加轻量级,让系统从性能,扩展性、伸缩性等各个方面都能得到质的提升。

论ORM框架—EntityFrameworkCore


以上所述就是小编给大家介绍的《论ORM框架—EntityFrameworkCore》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

浴缸里的惊叹

浴缸里的惊叹

顾森 / 人民邮电出版社 / 2014-7 / 49.00元

《浴缸里的惊叹》是一本趣题集,里面的题目全部来自于作者顾森十余年来的精心收集,包括几何、组合、行程、数字、概率、逻辑、博弈、策略等诸多类别,其中既有小学奥数当中的经典题目,又有世界级的著名难题,但它们无一例外都是作者心目中的“好题”:题目本身简单而不容易,答案出人意料却又在情理之中,解法优雅精巧令人拍案叫绝。作者还有意设置了语言和情境两个类别的问题,希望让完全没有数学背景的读者也能体会到解题的乐趣......一起来看看 《浴缸里的惊叹》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具