SqlSugar ORM 5.X 官网 、文档、教程

SqlSugar 是一款 老牌 .NET 开源ORM框架,由果糖大数据科技团队维护和更新 ,开箱即用

最易上手的ORM框架 ,51Job和Boss直招简历数仅次于Dapper和EF Core 。2022年51job简历数占

Dapper 40%。

功能介绍

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

2.  支持 完整的SAAS一套应用,租户分库 、租户分表 和 租户数据隔离

2.  支持【低代码】+工作流  (无实体多库兼容CRUD & JSON TO SQL )

3.  语法最爽的ORM、优美的表达式、仓储、UnitOfWork、DbContext、AOP 【文档,视频教程

4.  拥有重多【成熟案例】和良好的【生态】,开源早生态丰富  查看用户案例

5.  支持 DbFirst、CodeFirst和【WebFirst 3种模式开发

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

数据库支持

关系型数据库

MySql、SqlServer、Sqlite、Oracle 、 postgresql、达梦、人大金仓、神通数据库、瀚高、Access 、MySqlConnector、华为 GaussDB 、南大通用 GBase 、Odbc、自定义

时序数据库QuestDb (适合几十亿数据分析,模糊查询,自动分表存储 ,缺点不支持删除)
列式存储库Clickhouse(适用于商业智能领域(BI),缺点大小写必须和库一样,不支持事务)
即将上线TDengine、Sybase、Mongodb



即将上线

跨服务器联表查询(比如MYSQL和SQLSERVER可以查询) ,轻松实现不同数据库的联表查询( 预计10月初)


超前理念

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


自动分表

是ORM中唯一支持自动分表的ORM框架,.NET中并无相关框架,使用SqlSugar分表可以轻松处理产品历史数据, 日志,提高性能,对于上亿的流水数据分表是不错的选择

用法:https://www.donet5.com/Home/Doc?typeId=1201


百万级写入

大数据处理最强解决方案,能支持百万级别的插入或者更新

用法: https://www.donet5.com/Home/Doc?typeId=2404


最爽CRUD

适合Dapper和写Sql的用户

//联表查询
var list = db.Queryable<Order>()
            .LeftJoin<Custom>   ((o, cus ) => o.CustomId == cus.Id)//多个条件用&&
            .LeftJoin<OrderDetail> ((o, cus, oritem) => o.Id == oritem.OrderId)
            .Where(o => o.Id == 1)  
            .Select(o =>o)
            .ToList();
//查询 
var list=db.Queryable<Order>().Where(it=>it.Id>0).ToList();           
//插入            
db.Insertable(insertObj).ExecuteCommand(); 
//更新
db.Updateable(UpdateObj).ExecuteCommand();   
//删除
db.Deleteable(DeleteObj).ExecuteCommand();


最爽的导航

在关系映射和CURD上做的比EF CORE更加细致并且不需要外键 (适合喜欢用一对多、一对一和多对多的用户)

 //全新导航查询  不需要写ThenInclude 直接点出来,比EF Core更加简洁,配置更加简单
 var list=db.Queryable<Test>()
           .Includes(te => te.Provinces, pro=>pro.Citys ,cit=>cit.Street) //多层级
           .Includes(te=> te.ClassInfo)// 一级查询
           .ToList();
           
 //全新导航插入  EF CORE全部操作都是一个SaveChange,解决了EFCore不安全、不好控制和不好理解
 db.InsertNav(list)
            .Include(z1 => z1.SchoolA)// 插入第一层 SchoolA
            .ThenInclude(z1 => z1.RoomList) //插入 SchoolA 下面的 RoomList
            .Include(z1 => z1.Books)//插入第一层  Books
            .ExecuteCommand(); 
            
 //全新导航删除  EF CORE全部操作都是一个SaveChange,解决了EFCore不安全、不好控制和不好理解         
 db.DeleteNav<Student>(it=>it.Id==1)//删除 Student(id=1)
            .Include(z1 => z1.SchoolA)//   删除   Student(id=1)->SchoolA
            .ThenInclude(z1 => z1.RoomList)// 删除  Student(id=1)-> SchoolA ->RoomList
            .Include(z1 => z1.Books)//    删除   Student(id=1)->Books
            .ExecuteCommand();  
 
 //全新导航更新  EF CORE全部操作都是一个SaveChange,解决了EFCore不安全、不好控制和不好理解        
 db.UpdateNav(list)
            .Include(z1 => z1.SchoolA)// 更新第一层 SchoolA
            .ThenInclude(z1 => z1.RoomList) //更新 SchoolA 下面的 RoomList
            .Include(z1 => z1.Books)//更新第一层  Books
            .ExecuteCommand();

用法:https://www.donet5.com/Home/Doc?typeId=1188


最爽的写SQL

db.SqlQueryable<Student>("select * from student").OrderBy("id asc").ToPageList(1, 2,ref total)

用法:https://www.donet5.com/Home/Doc?typeId=1197


基础性能

SqlSugarVsEfCore.rar sqlsugar对比efcore sqlserver 性能提升50%

SqlSugarVsEfCoreMySql.zip  sqlsugar对比efcore mysql性能提高有2倍

SqlSugar VS Dapper     无论在性能还是在功能上都全面压制 Dapper ,虽然基础性能和Sugar打平手,但是批量操作 Dapper完全不行

SqlSugar VS EF       ,SqlSugar小巧并且功能齐全,最重要的是上手容易,学习成本低 ,性能高于EF框架

每次查询10万条记录,2种模式都快于EFCore 4倍

image.png

根据主键查询,SqlSugarClient明显快(SqlSugarScope略快)

image.png

分页查询 SqlSugarClient明显快(SqlSugarScope略快

image.png

免费服务

1、基本用法咨询       

2、SqlSugar版块提交BUG           

3、官网首页提交建议和需求   

4、代码开源 可用于任何商用项目 不收取费用 下载

5、qq交流群讨论 726648662(拥挤)   995692596(空闲)   6540153771800/2000 拥挤)  225982985 (已满)  

6、持续更新的文档


性能原理

比大部分的DbHelper性能要高,底层采用Emit动态创建数据绑定程序集进行缓存,缓存后的性能可以达到原生水平,相反原始的ADO需要用到大量装箱和拆箱操作性能反而下降


文档教程

1、在使用文档时,左边的搜索要常用,搜索功能有自动升级机制,你搜索越多,搜索算法越成熟,并且我们也能知道你们的用户需求

2、文档右边的导航菜单可以让你快速知道这一页文档教程里面有哪些功能

文档:SqlSugar5.0