【分页查询】.NET开源 ORM 框架 SqlSugar 系列

ops/2024/12/4 19:14:54/

   💥 .NET开源 ORM 框架 SqlSugar 系列  🎉🎉🎉

  1. 【开篇】.NET开源 ORM 框架 SqlSugar 系列
  2. 【入门必看】.NET开源 ORM 框架 SqlSugar 系列
  3. 【实体配置】.NET开源 ORM 框架 SqlSugar 系列
  4. 【Db First】.NET开源 ORM 框架 SqlSugar 系列
  5. 【Code First】.NET开源 ORM 框架 SqlSugar 系列
  6. 【数据事务】.NET开源 ORM 框架 SqlSugar 系列
  7. 【连接池】.NET开源 ORM 框架 SqlSugar 系列
  8. 【查询目录】.NET开源 ORM 框架 SqlSugar 系列
  9. 【查询基础】.NET开源 ORM 框架 SqlSugar 系列
  10. 【排序用法】.NET开源 ORM 框架 SqlSugar 系列
  11. 【分组去重】.NET开源 ORM 框架 SqlSugar 系列
  12. 【联表查询】.NET开源 ORM 框架 SqlSugar 系列
  13. 【导航查询】.NET开源 ORM 框架 SqlSugar 系列
  14. 【子查询】.NET开源 ORM 框架 SqlSugar 系列
  15. 【嵌套查询】.NET开源 ORM 框架 SqlSugar 系列

💦万丈高楼平地起,做开发想要技术精进,必须要有扎实的基础功底。基础SQL查询语法一定要牢记于心,才能应对后面更为复杂的形势。

01. 核心方法

分页主要用到的核心方法有两个,分别是 ToPageList ToOffsetPage

💥注意事项:

  • 如果数据库版本较新可以用 ToOffsetPage 取代 ToPageList
  • ToPageList 对低版本数据库支持更好 (兼容性较好)
  • ToPagedList有的不是sqlsugar封装的 
.ToPageList(pagenumber, pageSize)// 不返回Count
.ToPageList(pagenumber, pageSize, ref totalCount)//返回Count
.ToPageList(pagenumber, pageSize, ref totalCount,ref totalPage)//返回Count+总页数

02. 同步分页

💥注意事项:

  • 如果SqlServer不想有 Rownumber 可以用 ToOffsetPage 较新版本支持
  • pagenumbe 是从1开始的不是从零开始
 int pagenumber= 1;int pageSize = 20;int totalCount=0;//单表分页var page = db.Queryable<Student>().ToPageList(pagenumber, pageSize, ref totalCount);//多表分页var list = db.Queryable<Student>().LeftJoin<School>((st,sc)=>st.SchoolId==sc.Id).Select((st,sc)=>new{Id=st.Id,Name=st.Name,SchoolName=sc.Name}).ToPageList(pageIndex, pageSize, ref totalCount);

03. 异步分页

💥注意事项:REF 和 OUT 不支持异步,想要真的异步这是最优解。

RefAsync<int> total = 0;//REF和OUT不支持异步,想要真的异步这是最优解Db.Queryable<Order>().ToPageListAsync(pagenumber, pageSize, total);//ToPageAsync

  生成的Sql

 SELECT * FROM (SELECT [ID],[SchoolId],[Name],[CreateTime],ROW_NUMBER() OVER(ORDER BY GetDate())AS RowIndex FROM [STudent]) TWHERE RowIndex BETWEEN 1 AND 20

04. SqlSever2012分页  OFFSET 

把  ToPageList 换成  ToOffsetPage   //offest分页

05. Oracle高性能分页 

新功能 : 5.1.2.6-preview03

Oracle分了2种分页,特殊情况下性能慢可以换下面这种

06. 获取行号

方式1:只支持SqlServer或者Oracle  ( row_index

需要加上特性:[SugarColumn(IsIgnore=true)]

[SugarColumn(IsIgnore=true)]//需要加上
public int RowIndex{get;set;} //行号 序号db.Queryable<Student>().ToPageList(pageIndex, pageSize, ref totalCount)

方式2:通用,兼容性好 👍

有分页的话需要计算一下 (pageindex-1)*pagesize+i


//其他数据库可以这么实现int i = 1;var getAll = db.Queryable<Order>().Mapper((it,cache)=> {it.num= i;//有分页的话需要计算一下 (pageindex-1)*pagesize+ii++; }).ToList();

方式3:开窗口函数 (数据库需要支持开窗口函数才能用)

//开窗口函数实现
//index  =  SqlFunc.RowNumber($"{it.Id} asc ,{it.Name} desc ");

07. Count为什么不是long ❓

答: 1亿数据Count就要1分钟,别说int.max的20亿数据了,所以超过1000万以上的查询就不建议查询count,因为count的时间比查询数据的时间更长

💥 .NET开源 ORM 框架 SqlSugar 系列  🎉🎉🎉

  1. 【开篇】.NET开源 ORM 框架 SqlSugar 系列
  2. 【入门必看】.NET开源 ORM 框架 SqlSugar 系列
  3. 【实体配置】.NET开源 ORM 框架 SqlSugar 系列
  4. 【Db First】.NET开源 ORM 框架 SqlSugar 系列
  5. 【Code First】.NET开源 ORM 框架 SqlSugar 系列
  6. 【数据事务】.NET开源 ORM 框架 SqlSugar 系列
  7. 【连接池】.NET开源 ORM 框架 SqlSugar 系列
  8. 【查询目录】.NET开源 ORM 框架 SqlSugar 系列
  9. 【查询基础】.NET开源 ORM 框架 SqlSugar 系列
  10. 【排序用法】.NET开源 ORM 框架 SqlSugar 系列
  11. 【分组去重】.NET开源 ORM 框架 SqlSugar 系列
  12. 【联表查询】.NET开源 ORM 框架 SqlSugar 系列
  13. 【导航查询】.NET开源 ORM 框架 SqlSugar 系列
  14. 【子查询】.NET开源 ORM 框架 SqlSugar 系列
  15. 【嵌套查询】.NET开源 ORM 框架 SqlSugar 系列

http://www.ppmy.cn/ops/139071.html

相关文章

用纯 CSS 实现网格背景

是不是在日常开发中经常遇到实现网格的需求&#xff0c;网格通常对网页中展示的元素能起到很好的定位和对齐作用。 这里介绍如何只通过 CSS 来实现这个需求&#xff1f; 使用背景图​ 这里我们的背景图使用 SVG 来创建&#xff0c;首先&#xff0c;创建绘出一个正方形&#xff…

前端性能优化:打造快速响应的网页体验

引言 在当今互联网高速发展的时代&#xff0c;用户对于网页加载速度和交互流畅性的要求越来越高。一个优秀的网站不仅需要提供有价值的内容&#xff0c;还需要确保其前端性能足够出色&#xff0c;以保证用户体验。前端性能优化是提高网站访问速度、减少资源消耗、提升用户满意…

「Python数据科学」数据科学的概念及Python常用数据科学库

引言 在之前的Python系列文章中&#xff0c;我们介绍的更多的是Python相关的基础语法知识&#xff0c;以及一些常用的类库的使用。但是&#xff0c;Python的实用价值并没有能够很好地体现出来。 为了更加便于不同专业背景、不同领域的Python爱好者能够真正掌握Python的使用&a…

SpringBoot源码-spring boot启动入口ruan方法主线分析(二)

12.刷新前操作 // 刷新前操作prepareContext(context, environment, listeners, applicationArguments, printedBanner);进入prepareContext private void prepareContext(ConfigurableApplicationContext context, ConfigurableEnvironment environment,SpringApplicationRun…

【机器学习】探索机器学习决策树算法的奥秘

决策树 前言基本概念常见的决策树算法ID3算法C4.5算法CART算法 决策树的优缺点应用场景决策树的可视化总结 前言 在当今这个数据驱动的时代&#xff0c;机器学习作为数据分析与预测的利器&#xff0c;正以前所未有的速度改变着我们的生活和工作方式。在众多机器学习算法中&…

redis 从16db块 加到32db块

在 Redis 中&#xff0c;数据库的数量和编号是由配置文件中的 databases 参数决定的。默认情况下&#xff0c;Redis 支持 16 个数据库&#xff0c;编号从 0 到 15。然而&#xff0c;有些 Redis 实例可能会配置为支持更多的数据库&#xff0c;例如 15、16、17 等。 原因分析 配…

HTMLCSS 创意工坊:卡片网格的鼠标魔法秀

这个HTML页面展示了一个包含SVG图标和文本的卡片网格。鼠标移入旋转放大的效果 演示效果 HTML&CSS <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevi…

动态规划-----路径问题

动态规划-----路径问题 下降最小路径和1&#xff1a;状态表示2&#xff1a;状态转移方程3 初始化4 填表顺序5 返回值6 代码实现 总结&#xff1a; 下降最小路径和 1&#xff1a;状态表示 假设&#xff1a;用dp[i][j]表示&#xff1a;到达[i,j]的最小路径 2&#xff1a;状态转…