.NET 主流 ORM 功能介绍 大全 最新

.NET主流ORM

下面是3款.NET 使用最多的ORM

测试项目发布时间微信公众号投票 (追逐时间光者)使用难度功能
SqlSugar  orm201426%  491票适中
EFCore   orm201636%  663票较难
Dapper   orm201323%   374票简单

一、SqlSugar  ORM介绍

是一款 老牌 .NET 开源多库架构ORM框架(EF Core单库架构),由果糖大数据科技团队维护和更新 ,开箱即用最易上手的.NET ORM框架 。生态圈丰富,目前开源生态仅次于EF Core,但是在需要多库兼容的项目或产品中更加偏爱SqlSugar

1.1 ORM入门示例

 //创建数据库对象 (用法和EF Dappper一样通过new保证线程安全)SqlSugarClient Db= new SqlSugarClient(new ConnectionConfig(){ConnectionString = "连接符字串", DbType = DbType.SqlServer,IsAutoCloseConnection = true});//建表//db.CodeFirst.InitTables<Student>(); 更多看文档迁移        //查询表的所有var list = db.Queryable<Student>().ToList();//插入db.Insertable(new Student() { SchoolId = 1, Name = "jack" }).ExecuteCommand();//更新db.Updateable(new Student() { Id = 1, SchoolId = 2, Name = "jack2" }).ExecuteCommand();//删除db.Deleteable<Student>().Where(it => it.Id == 1).ExecuteCommand();//实体与数据库结构一样public class Student{//数据是自增需要加上IsIdentity //数据库是主键需要加上IsPrimaryKey //注意:要完全和数据库一致2个属性[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]public int Id { get; set; }public int? SchoolId { get; set; }public string Name { get; set; }}

1.2  SqlSugar ORM 开箱即用(支持AOT)

1.  真正可以实现零Sql的ORM,拥有超强查询体系:导航查询、联表查询、并集查询、子查询 、 报表查询 等

2.  支持 .NET 百万级【大数据】写入和更新、分表和几十亿查询和统计等 拥有成熟方案

3.  支持  SAAS 完整应用 跨库查询 、审计、租户分库 、租户分表 和 租户数据隔离

4.  支持【低代码】+工作流  (动态建类 、动态建表、无实体多库兼容CRUD 、 JSON TO SQL 、自定义XML等)

5.  语法最爽的.NET ORM、优美的表达式、仓储、UnitOfWork、DbContext、AOP 

6.  支持 DbFirst、CodeFirst(无命令迁移)和【WebFirst】 3种模式开发

7. 简单易用、功能齐全、高性能、轻量级、服务齐全、官网教程文档、有专业技术支持一天18小时服务

1.3  SqlSugar数据库支持

关系型数据库

MySql、SqlServer、Sqlite、Oracle 、 postgresql、达梦、

人大金仓(国产推荐)、海量数据库Vastbase、神通数据库、瀚高、Access 、

OceanBase MySqlConnector、华为 GaussDB 、南大通用 GBase、MariaDB、Tidb、Odbc、Percona Server, Amazon Aurora、Azure Database for MySQL、PolarDB

 Google Cloud SQL for MySQL、kunDB、TDSQL、GoldenDB 、

自定义数据库

时序数据库

TDengine  (支持群集,缺点不支持更新,语法比较弱支持的东西少)

QuestDb(适合几十亿数据分析,模糊查询,适合单机,语法强大,自动分表存储 ,缺点不支持删除)

列式存储库Clickhouse(适用于商业智能领域(BI),缺点大小写必须和库一样,不支持事务)
即将上线

Mongodb(mongodb.entities)延期24年1月

Sybase、hana、FireBird、InfluxDB

litedb、

SqlSugar特色1: 超级简单

在不用任何设计模式,任何框架的情况下都可以拥有最佳体验,SqlSugar做到了保姆一样的服务,直接用不需要学习

的框架,各种默认值都是最佳配置,用到什么看一下文档便可。

SqlSugar特色2:产品必备

1. 低代码支持:string to exp、exp to string、 exp to sql 、List<object> to sql 、Json to sql  、List<object> to Class 

2.可以一套代码支持所有主流数据库(包括国产数据库),成本要远低于EF Core, EF Core基本每个数据库都需要手动写

兼容代码 。 例如:建表、创建视图、获取表结构、获取数据类型、查询函数、索引 、修改表等等,SqlSugar只需要一

套代码就能支持多个数据库。支持多库建表,多库修改表,多库索引,多库事务,多库查询,跨库查询,多库共存,

多库切换等等。

补充:支持的Sql函数超100个

SqlSugar 特色3:高性能方案

1、SqlSugar可以生成理想的Sql脱颖而出,相反EF Core对生成的SQL的调整能力有限,可能受到一些限制和约束, SqlSugar在复杂查询方面的优势使其成为更强大、更高效的选择。

2、SqlSugar提供了全面的高性能解决方案,包括大数据写入、大数据导航查询、大数据更新、大数据分表、大数据删除、大数据插入或更新、大数据导入和验证等功能。此外,它还支持二级缓存、读写分离、时序库等功能。无论是处理海量数据还是优化数据库操作,SqlSugar都是一个强大而可靠的选择。它的高性能和丰富的功能集使得开发者能够轻松应对各种复杂场景,并实现快速高效的数据库操作。

3、SqlSugar是一个完全开源且遵循MIT协议的框架,提供了与收费组件如Z.EntityFramework.Extensions.EFCore和Dapper Plus相媲美的全部功能,而无需支付额外费用。

4、超高的基础性能,例如100万记条映射到List<T>比Dapper还快些

SqlSugar 特色4:无限潜力

任何开源都离不开活跃的社区,未来发展将越好,目前SqlSugar 拥有.NET单个开源项目最活跃的社区之一

并且当天解决率为80%,开源界最勤劳的小蜜蜂 ,每天都在和用户互动,已经形成了良性循环

社区每天都有好的建议和需求推动着SqlSugar向更高的高度发展

SqlSugar 特色5:超前理念

SqlSugar是一款来自未来的ORM,拥有超前的理念,需求领跑第一线,可以毫不夸张的说,在设计理念上就算不更新几年都不会过时,我们每天都会跟踪用户需求,将这些用户需求分类和整理,把有共性的功能都整理出来,经历过长达7年的努力,需求成负增长,已经走向了成熟和完善,是一款真正用了功能齐全的ORM框架,如果你用过EF CORE或者DAPPER肯定会为功能缺失而无奈,该有的功能没有,花里胡哨的一大堆。如果你用SqlSugar, 会给你一个不错的选择, 不断给你惊喜。

Dapper ORM

Dapper是一款轻量级ORM工具。如果你在小的项目中,使用Entity Framework、NHibernate 来处理大数据访问及关系映射,未免有点杀鸡用牛刀。你又觉得ORM省时省力,这时Dapper 将是你不二的选择。

对象关系映射(ORM)已经被使用了很长时间,以解决在编程过程中对象模型与数据模型在关系数据库中不匹配的问题。

Dapper是由Stack OverFlow团队开发的开源的,轻量级的ORM.相比于其他的ORM框架,Dapper速度非常快。

Dapper的设计考虑到了性能以及易用性。它支持使用事务,存储过程或数据批量插入的静态和动态对象绑定。

EF Core ORM

Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技术。

EF Core 可用作对象关系映射程序 (O/RM),这可以实现以下两点:

  • 使 .NET 开发人员能够使用 .NET 对象处理数据库。
  • 无需再像通常那样编写大部分数据访问代码。

EF Core 支持多个数据库引擎,请参阅数据库提供程序了解详细信息。

源码下载:

Dapper ORM

https://github.com/DapperLib/Dapper

EF Core ORM

https://github.com/dotnet/efcore

SqlSugar ORM

https://github.com/DotNetNext/SqlSugar
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/154307.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mricorn 手动勾画ROI并保存为模版的方法步骤

mricorn软件手动勾画ROI&#xff1a; 这里拿一个做了切除手术的癫痫病人举例子&#xff0c;我们需要把切除区域勾画出来并保存成切除的模版。 1、将图像导入到mricorn中 2、逐层勾画ROI并填充 比较方便的是从切除区域的起始层进行勾画&#xff0c;这里为了方便展示只勾画中间…

计算机网络的OSI七层模型

目录 1、OSI七层模型是什么 1.1 物理层&#xff08;Physical Layer&#xff09; 1.2 数据链路层&#xff08;Data Link Layer&#xff09; 1.3 网络层&#xff08;Network Layer&#xff09; 1.4 传输层&#xff08;Transport Layer&#xff09; 1.5 会话层&#xff08;S…

如何进行并发编程和线程同步?

并发编程是一种多任务处理的编程范式&#xff0c;它允许程序中的多个任务&#xff08;线程、进程等&#xff09;在相同的时间段内执行。线程同步是确保这些并发任务在共享资源上正确协作的一种技术。在C语言中&#xff0c;通过使用线程和相关的同步机制&#xff0c;可以实现并发…

5款免费BI数据可视化工具,2023年最新精选推荐!

BI可视化工具顾名思义是进行数据分析和可视化的软件&#xff0c;旨在将数据以表格、图表、仪表盘等形式展示出来&#xff0c;让用户能够更加直观了解其业务状况、发现问题&#xff0c;并在必要时进行决策。   市面上BI数据可视化工具很多&#xff0c;目前比较火的像国外的Tabl…

应用软件安全编程--24不要使用硬编码密匙

当程序中使用硬编码加密密匙时&#xff0c;所有项目开发人员都可以查看该密匙&#xff0c;甚至如果攻击者能够获取 程序 class文件&#xff0c;可通过反编译得到密匙&#xff0c;硬编码加密密匙会大大降低系统安全性。 对于避免使用硬编码密匙的情况&#xff0c;示例1给出了不…

jQUery(基本介绍+示例代码)

一、JQUery基本介绍和特点 jQuery 是一个快速、轻量级、跨浏览器的 JavaScript 库。它简化了在网页开发中处理诸多任务的过程&#xff0c;提供了易于使用的 API&#xff0c;使得开发者能够更容易地操作 HTML 文档、处理事件、执行动画、发送 AJAX 请求等。 以下是一些 jQuery…

CTF/AWD竞赛标准参考书+实战指南

随着网络安全问题日益凸显&#xff0c;国家对网络安全人才的需求持续增长&#xff0c;其中&#xff0c;网络安全竞赛在国家以及企业的人才培养和选拔中扮演着至关重要的角色。 在数字化时代&#xff0c;企业为了应对日益增长的攻击威胁&#xff0c;一般都在大量部署安全产品、…

PyInstaller 如何 将第三方库打包到可执行文件

PyInstaller 是一个非常流行的 Python 打包工具&#xff0c;它可以将你的 Python 程序以及其依赖项打包成一个可执行文件。如果你想将第三方库打包到可执行文件中&#xff0c;你可以按照以下步骤操作&#xff1a; 首先&#xff0c;确保你已经安装了 PyInstaller。如果没有&…

uview-plus u-picker的defaultIndexs修改后无效的问题

uniapp项目中使用了uview-plus组件库&#xff0c;在使用u-picker组件时&#xff0c;发现其默认的选中属性 defaultIndex是一次性的&#xff0c;修改后无法响应&#xff0c;解决办法就是在u-picker源码中修改这个属性的watch,源码位置在uni_modules/uview-plus/components/u-pi…

Hive 定义变量 变量赋值 引用变量

Hive 定义变量 变量赋值 引用变量 变量 hive 中变量和属性命名空间 命名空间权限描述hivevar读写用户自定义变量hiveconf读写hive相关配置属性system读写java定义额配置属性env只读shell环境定义的环境变量 语法 Java对这个除env命名空间内容具有可读可写权利&#xff1b; …

Qt如何解析JSON格式

Qt 5.15 版本以后&#xff0c;推荐使用 QJsonDocument 来解析 JSON 数据。 直接贴代码&#xff1a; #include <QJsonDocument> #include <QJsonObject> #include <QFile>// 从文件中读取 JSON 数据 QFile file("data.json"); file.open(QIODevi…

SQL零基础入门教程,贼拉详细!贼拉简单! 速通数据库期末考!(十一)

COUNT() 计数函数 COUNT() 函数返回匹配指定条件的行数。 语法&#xff1a; 1.返回指定列的字段值条数 SELECT COUNT(column_name) FROM table_name;2.返回整表数据行条数 SELECT COUNT(*) FROM table_name;3.返回指定列去重后的字段值条数 SELECT COUNT(DISTINCT column_…

Leetcode 第 372 场周赛题解

Leetcode 第 372 场周赛题解 Leetcode 第 372 场周赛题解题目1&#xff1a;2937. 使三个字符串相等思路代码复杂度分析 题目2&#xff1a;2938. 区分黑球与白球思路代码复杂度分析 题目3&#xff1a;2939. 最大异或乘积思路代码复杂度分析 题目4&#xff1a;2940. 找到 Alice 和…

vatee万腾的科技奇点:Vatee创新力引领数字未来

在数字时代的涌动潮流中&#xff0c;Vatee万腾显露出一颗科技的奇点之心&#xff0c;其创新力正引领着数字未来的前沿。随着科技不断演进&#xff0c;Vatee万腾敏锐地捕捉到了科技的契机&#xff0c;展现出独特的创新视野&#xff0c;为数字化未来勾勒出了一幅令人瞩目的画卷。…

使用frp搭建内网穿透服务

使用frp搭建内网穿透服务 frp 是一个专注于内网穿透的高性能的反向代理应用&#xff0c;支持 TCP、UDP、HTTP、HTTPS 等多种协议&#xff0c;且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。 1.下载frp 下载地址 2.服务端安装 …

[Linux] shell脚本相关知识

一、shell脚本基础 1.1 shell脚本的作用 shell将人类使用的高级语言翻译成二进制&#xff0c;再将二进制翻译成高级语言。换句话就是人类写了一个命令集合&#xff0c;然后用bash去翻译给硬件执行。 linux中常见的shell&#xff1a; bash:基于gun的框架下发展的shell csh:类…

同为科技(TOWE)智能机柜PDU助力上海华为数据中心完善机房末端配电

智能时代加速而来&#xff0c;最大的需求是算力&#xff0c;最关键的基础设施是数据中心。作为一家在信息通信领域拥有多年经验和技术积累的公司&#xff0c;华为在全国多个地区都设有数据中心&#xff0c;如知名的贵州贵安华为云全球总部、内蒙古乌兰察布华为数据中心等&#…

pnpm 管理依赖包是如何节省磁盘空间的?

npm 存在的问题 我们经常使用 npm 来管理 node 项目中的包&#xff0c;从 package.json 中读取配置将依赖下载到本地&#xff0c;以保障项目的正常运行。 当项目数量多时&#xff0c;这样的包管理方式会非常的占用电脑内存。由于每个项目都有属于自己的依赖&#xff0c;每个项…

什么是多域名证书?

多域名证书是指同一个证书中包含多个域名&#xff0c;能够在多个站点之间共享一份证书&#xff0c;实现一个站点对应多个域名的情况。多域名证书非常适合需要跨多个站点部署的应用&#xff0c;例如企业的子站点、博客等。 特点 多域名证书的优点包括以下几个方面&#xff1a;…

【软件工程_软件工程项目管理】课后题

选择 1、( A )不属于项目的活动。 A.罐头产品的生产 B.一种新型罐头产品的发展 C.罐头产品的试制 D.罐头产品的营销策划 2、WBS&#xff08;任务分解结构&#xff09;非常重要&#xff0c;因为下列原因&#xff0c;除了&#xff08;D &#xff09; A.帮助组织工作 B.防止遗漏工…