SqlSugar 是一款 老牌 .NET 开源多库架构ORM框架(EF Core单库架构),由果糖大数据科技团队
维护和更新 ,开箱即用最易上手的.NET ORM框架 。生态圈丰富,目前开源生态仅次于EF Core,但是在需要
多库兼容的项目或产品中更加偏爱SqlSugar 【开源生态】 【视频教程】
Github源码:https://github.com/donet5/SqlSugar
Gitee源码:https://gitee.com/dotnetchina/SqlSugar
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小时服务
关系型数据库 | 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. 低代码支持: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个
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 拥有.NET单个开源项目最活跃的社区之一
并且当天解决率为80%,开源界最勤劳的小蜜蜂 ,每天都在和用户互动,已经形成了良性循环
社区每天都有好的建议和需求推动着SqlSugar向更高的高度发展
SqlSugar是一款来自未来的ORM,拥有超前的理念,需求领跑第一线,可以毫不夸张的说,在设计理念上就算不更新几年都不会过时,我们每天都会跟踪用户需求,将这些用户需求分类和整理,把有共性的功能都整理出来,经历过长达7年的努力,需求成负增长,已经走向了成熟和完善,是一款真正用了功能齐全的ORM框架,如果你用过EF CORE或者DAPPER肯定会为功能缺失而无奈,该有的功能没有,花里胡哨的一大堆。如果你用SqlSugar, 会给你一个不错的选择, 不断给你惊喜。
给作者打气和加油,承诺源码永久开源,文档永久免费,没有猫腻 ,MIT最宽松开源协议
特殊服务:https://www.donet5.com/Doc/28/2358
入门教程: https://www.bilibili.com/video/BV1sb411o7Kc/?spm_id_from=333.337
深入教程: https://www.bilibili.com/video/BV1uj411g7TW
是ORM中唯一支持自动分表的ORM框架,.NET中并无相关框架,使用SqlSugar分表可以轻松处理产品历史数据, 日志,提高性能,对于上亿的流水数据分表是不错的选择
用法:https://www.donet5.com/Home/Doc?typeId=1201
大数据处理最强解决方案,能支持百万级别的插入或者更新
用法: https://www.donet5.com/Home/Doc?typeId=2404
适合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, cus, oritem)=>new DTO{ Id=o.Id ,...}) .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(); //全新导航插入 db.InsertNav(list) .Include(z1 => z1.Provinces).ThenInclude(z1 => z1.Citys).ThenInclude(z1 => z1.Street)//多层级 .Include(z1 => z1.Books) //1级 .ExecuteCommand(); //全新导航删除 db.DeleteNav<Student>(it=>it.Id==1)//删除 Student(id=1) .Include(z1 => z1.Provinces).ThenInclude(z1 => z1.Citys).ThenInclude(z1 => z1.Street)//多层级 .Include(z1 => z1.Books) //1级 .ExecuteCommand(); //全新导航更新 db.UpdateNav(list) .Include(z1 => z1.Provinces).ThenInclude(z1 => z1.Citys).ThenInclude(z1 => z1.Street)//多层级 .Include(z1 => z1.Books) //1级 .ExecuteCommand();
用法:https://www.donet5.com/Home/Doc?typeId=1188
db.SqlQueryable<Student>("select * from student").OrderBy("id asc").ToPageList(1, 2,ref total)
用法:https://www.donet5.com/Home/Doc?typeId=1197
注意:这是老版本EF Core ,EF Core新版本性能也许提升了
SqlSugarVsEfCore.rar sqlsugar对比efcore sqlserver 性能提升50%
MySql_SqlSugarVSEFCore.zip sqlsugar对比efcore mysql性能提高有30%
SqlSugar VS Dapper 无论在性能还是在功能上都全面压制 Dapper ,虽然基础性能和Sugar打平手,但是批量操作 Dapper完全不行
SqlSugar VS EF ,SqlSugar小巧并且功能齐全,最重要的是上手容易,学习成本低 ,性能高于EF框架
每次查询10万条记录,2种模式都快于EFCore 4倍
根据主键查询,SqlSugarClient明显快(SqlSugarScope略快)
分页查询 ,SqlSugarClient明显快(SqlSugarScope略快)
1、基本用法咨询
2、SqlSugar版块提交BUG
3、官网首页提交建议和需求
4、代码开源 可用于任何商用项目 不收取费用 下载
5、qq交流群讨论
995692596(2000已满) 726648662(2000已满)
654015377(2000已满) 225982985 (2000已满)
958343000(1290/2000空闲)
6、持续更新的文档
比大部分的DbHelper性能要高,底层采用Emit动态创建数据绑定程序集进行缓存,缓存后的性能可以达到原生水平,相反原始的ADO需要用到大量装箱和拆箱操作性能反而下降
1、在使用文档时,左边的搜索要常用,搜索功能有自动升级机制,你搜索越多,搜索算法越成熟,并且我们也能知道你们的用户需求
2、文档右边的导航菜单可以让你快速知道这一页文档教程里面有哪些功能
2016 © donet5.comApache Licence 2.0