当前位置: 首页 > news >正文

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

 .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 系列

💦万丈高楼平地起,做开发想要技术精进,必须要有扎实的基础功底。基础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 系列

.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列【数据事务…...

【CSS in Depth 2 精译_061】9.4 CSS 中的模式库 + 9.5 本章小结

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 【第九章 CSS 的模块化与作用域】 ✔️ 9.1 模块的定义 9.1.1 模块和全局样式9.1.2 一个简单的 CSS 模块9.1.3 模块的变体9.1.4 多元素模块 9.2 将模块组合为更大的结构 9.2.1 模块中多个职责的拆分…...

惠普电脑切换默认F1至F12快捷键,FN切换

发现新买的惠普电脑&#xff0c;按F1至F12发现是快捷功能键&#xff0c;而按fnF1至F12才是windows的功能键和正常我自己使用的电脑刚好相反&#xff0c;实在太不方便了。 解决办法需要进入biso里面去把功能键模式选中给关掉&#xff0c;才能恢复回来...

计算机的错误计算(一百七十)

摘要 回复一中学生来信&#xff0c;探讨 MATLAB 关于算式 的计算问题。 在计算机的错误计算&#xff08;一百三十二&#xff09;中&#xff0c;我们探讨了手持式计算器关于算式 的计算问题。一中学生来信询问该算式在数学软件中是否会出错。 例1. 在 MATLAB 中计算 . 首…...

Python `async def` 函数中使用 `yield` 和 `return` 的区别

Python async def 函数中使用 yield 和 return 的区别 1. return 的使用示例代码输出结果解释 2. yield 的使用示例代码输出结果解释 3. 总结 在 Python 中&#xff0c;async def 函数用于定义异步函数&#xff0c;这些函数可以在执行过程中暂停和恢复&#xff0c;通常与 await…...

JAVA修饰符

JAVA 修饰符...

Java 单例模式:深度解析与应用

在软件开发领域&#xff0c;设计模式是解决常见设计问题的有效方案&#xff0c;而单例模式作为创建型设计模式中的一员&#xff0c;其重要性不容小觑。它能够确保一个类仅有一个实例&#xff0c;并提供全局访问点&#xff0c;这一特性在资源管理、配置信息读取、线程池管理以及…...

软件质量保证——单元测试之白盒技术

笔记内容及图片整理自XJTUSE “软件质量保证” 课程ppt&#xff0c;仅供学习交流使用&#xff0c;谢谢。 程序图 程序图定义 程序图P&#xff08;V,E&#xff09;&#xff0c;V是节点的集合&#xff08;节点是程序中的语句或语句片段&#xff09;&#xff0c;E是有向边的集合…...

Vue0-生命周期-03

生命周期 生命周期指定就是一个对象从创建到销毁的整个过程。 Vue也是有的 完整的Vue周期包含8个阶段。 Vue官方生命周期流程图&#xff1a; 那这有什么用呢&#xff1f;我们可以在指定阶段做特殊的事件。 这些方法伴随生命周期的进行自动执行。 <!DOCTYPE html> <…...

Flutter:页面滚动

1、单一页面&#xff0c;没有列表没分页的&#xff0c;推荐使用&#xff1a;SingleChildScrollView() return Scaffold(backgroundColor: Color(0xffF6F6F6),body: SingleChildScrollView(child: _buildView()) );2、列表没分页&#xff0c;如购物车页&#xff0c;每个item之间…...

【CameraPoseRefinement】以BARF为例介绍三维重建中的位姿优化

文章目录 IntroductionApproachPlanar Image Alignment(2D)Neural Radiance Fields (3D)Bundle-Adjusting Neural Radiance Fields Experiment平面图像对齐的定性实验合成场景上的定量实验 Introduction 在计算机视觉三维重建中&#xff0c;求解3D场景的表示和定位给定的相机帧…...

YOLO系列论文综述(从YOLOv1到YOLOv11)【第13篇:YOLOv10——实时端到端物体检测】

YOLOv10 1 摘要2 网络结构3 YOLOv1-v10对比 YOLO系列博文&#xff1a; 【第1篇&#xff1a;概述物体检测算法发展史、YOLO应用领域、评价指标和NMS】【第2篇&#xff1a;YOLO系列论文、代码和主要优缺点汇总】【第3篇&#xff1a;YOLOv1——YOLO的开山之作】【第4篇&#xff1a…...

多数元素

多数元素 给定一个大小为 n 的数组 nums &#xff0c;返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 示例 1&#xff1a; 输入&#xff1a;nums [3,2,3] 输出&#xff…...

EasyDSS视频推拉流技术的应用与安防摄像机视频采集参数

安防摄像机的视频采集参数对于确保监控系统的有效性和图像质量至关重要。这些参数不仅影响视频的清晰度和流畅度&#xff0c;还直接影响存储和网络传输的需求。 安防摄像机图像效果的好坏&#xff0c;由DSP处理器和图像传感器sensor决定&#xff0c;如何利用好已有的硬件资源&…...

在CentOS7上更换为阿里云源

在CentOS 7上更换为阿里云YUM源可以通过以下步骤进行&#xff1a; 备份当前的YUM源配置文件 sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 下载阿里云的YUM源配置文件 sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirr…...

小程序跳转到本页面并传参

const pages getCurrentPages(); const currentPage pages[pages.length - 1]; // 当前页面路由 const route currentPage.route; // 当前页面参数 const options currentPage.options;// 构建新的 URL 参数 const newOptions {...options,// newParam: newValue }; // 你…...

Vim操作

1. Vim的模式 2.正常模式->编辑模式 在上⽅插⼊⼀⾏&#xff1a; O在下⽅插⼊⼀⾏&#xff1a; o (open)在当前光标前插⼊&#xff1a; i在⾏⾸插⼊&#xff1a; I在当前光标后插⼊&#xff1a; a在⾏尾插⼊&#xff1a; A 3.常见命令行 1、拷贝当前行 yy ,拷贝当前行向下…...

金碟云星空-企微通知

需求背景&#xff1a; 通过企业微信&#xff0c;及时发送金碟云星空消息&#xff0c;比如流程异常、审批节点、等需要关注数据和信息点 需求目的&#xff1a; 及时告警、高响应、自动化 技能要求&#xff1a; 前后端开发工具的运用与开发&#xff0c;本实例使用IDEA 企业…...

Java中的运算符“instanceof“详解

在Java中&#xff0c;instanceof运算符用于检查一个对象是否是某个特定类的实例&#xff0c;或者是否实现了某个特定接口。它返回一个布尔值&#xff08;true或false&#xff09;&#xff0c;用于在运行时进行类型检查。这在处理多态性时尤其有用&#xff0c;可以帮助我们确定对…...

SVG无功补偿装置MATLAB仿真模型

“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 模型简介 SVG&#xff08;又称ASVG 或STATCOM&#xff09;是Static Var Generator 的缩写&#xff0c;叫做静止无功发生器。也是做无功补偿的&#xff0c;比SVC 更加先进。其基本原理是将自换相桥式电路通过电抗器或…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

QT3D学习笔记——圆台、圆锥

类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体&#xff08;对象或容器&#xff09;QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质&#xff08;定义颜色、反光等&#xff09;QFirstPersonC…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storms…...