框架简介
SqlSugar 是一款 老牌 .NET开源ORM框架,由果糖大数据科技团队维护和更新 ,开箱即用最易上手的ORM 。
- 优点 :【生态丰富】【高性能】【超简单】 【功能全面】 【多库兼容】【适合产品】 【SqlSugar视频教程】
- 支持 :.net framework .net core3.1 .ne5 .net6 .net7 .net8 .net9
- 特色 :拥有全球最活跃的ORM线上论坛,比EF还要活跃,交流群人数已超过万人 ,技术支持快,口碑好。
功能目录
- 真正可以实现零SQL的ORM 建表、索引和CRUD全部支持
- 支持 .NET 百万级大数据写入、更新、分表和拥有几十亿查询统计成熟解决方案
- 支持 SAAS 完整应用 :跨库查询 、审计、租户分库 、租户分表 和 租户数据隔离
- 支持低代码+工作流 (动态建类 、动态建表、无实体多库兼容CRUD 、 JSON TO SQL 、自定义XML等)
- 支持ValueObject、鉴别器、仓储、UnitOfWork、DbContext、AOP
- 支持 DbFirst、CodeFirst和WebFirst 3种模式开发
- 简单易用、功能齐全、高性能、轻量级、服务齐全、官网教程文档、有专业技术支持一天18小时服务
- 完美支持AOT:多种数据库
数据库支持
EF Core的数据库驱动是不同公司开发,函数、建表标准不统一后期换库成本比较高
SqlSugar花了8年多时间完善中间标准真正的多库ORM,只需要改一下DbType就完成了切换数据库
关系型数据库 | 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 、Doris 自定义数据库
|
适合分布式 | OceanBase 、Tidb、GaussDB |
时序数据库 | TDengine (支持群集,缺点不支持更新,语法比较弱支持的东西少)
QuestDb(适合几十亿数据分析,模糊查询,适合单机,语法强大) |
列式存储库 | Clickhouse(适用于商业智能领域(BI),缺点大小写必须和库一样,不支持事务) |
源码和安装
Github源码 | https://github.com/donet5/SqlSugar |
Gitee源码 | https://gitee.com/dotnetchina/SqlSugar |
开源生态 | https://www.donet5.com/Home/Doc?typeId=1215 |
Nuget | https://www.donet5.com/Home/Doc?typeId=1226 |
AOT | https://www.donet5.com/Home/Doc?typeId=2574 |
特色1:超级简单
在不用任何设计模式,任何框架的情况下都可以拥有最佳体验,SqlSugar做到了保姆一样的服务,直接用不需要学习的框架,各种默认值都是最佳配置,用到什么看一下文档便可。
特色2:产品必备
SqlSugar只需要一套代码就能支持几十个数据库,支持的Sql函数超100个,包括开窗函数、行转列等等
支持:多库建表 、多库修改表、多库索引、多库事务
支持:多库查询、跨库查询、多库共存、多库切换
特色3:超高性能
1、SqlSugar 可以生成理想的Sql脱颖而出,相反EF Core对生成的SQL的调整能力有限
2、SqlSugar 提供了大数据写入、大数据导航查询、大数据更新、大数据分表、大数据删除、大数据导入和验证等功能
3、SqlSugar 提供了与收费组件Dapper Plus相媲美的全部功能 ,而无需支付额外费用全部MIT协议
4、超高的基础性能,例如100万记条映射到List<T>比Dapper还快些
特色4:无限潜力
任何开源都离不开活跃的社区,社区越活跃未来发展将越好,目前SqlSugar 拥有.NET单个开源项目最活跃的社区之一并且当天解决率为80%,开源界最勤劳的小蜜蜂 ,每天都在和用户互动,已经形成了良性循环
社区每天都有好的建议和需求推动着SqlSugar向更高的高度发展
特色5:超前理念
SqlSugar是一款来自未来的ORM,拥有超前的理念,需求领跑第一线,可以毫不夸张的说,在设计理念上就算不更新几年都不会过时,我们每天都会跟踪用户需求,将这些用户需求分类和整理,把有共性的功能都整理出来,经历过长达7年的努力,需求成负增长,已经走向了成熟和完善,是一款真正用了功能齐全的ORM框架,如果你用过EF CORE或者DAPPER肯定会为功能缺失而无奈,该有的功能没有,花里胡哨的一大堆。如果你用SqlSugar, 会给你一个不错的选择, 不断给你惊喜。
特色6:无需担心升级
像EF你必须升级.NET版本才能使用最新的功能,而SqlSugar始终支持多个.NET版本。像EF 在 .net framework和.net core就是2套ORM,而SqlSugar始终一致,无需担心升级问题
最爽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, 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
最爽的写SQL
db.SqlQueryable<Student>("select * from student").OrderBy("id asc").ToPageList(1, 2,ref total)
具体用法:https://www.donet5.com/Home/Doc?typeId=1197
共同学习
虽然SqlSugar 是一款 老牌 .NET开源ORM框架,但我也是刚接触不久,也在学习中。也会根据学习进度分享技术,与大家一起学习交流。
原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/90250.html