SqlSugar 2.分页查询

C# ORM模式之 SqlSugar使用 3、稳定性和技术支持: 虽然不是官方ORM, 但在稳定性上也是有着数年用户积累,如果遇到问题可以在GITHUB提出来,会根据紧急度定期解决;1、高性能:不夸张的说,去掉Sql在数据库执行的时间,SqlSugar是EF数倍性能,另外在批量操作和一对多查询上也有不错的SQL优化;MySql、SqlServer、Sqlite、Oracle 、 postgresql、达梦、人大金仓。2、高扩展性 :支持自定义拉姆达函数解析、扩展数据类型、支持自定义实体特性,外部缓存等;5、创新、持续更新 ,向下兼容。 阅读详情

用到的表结构、数据、实体类

方便测试Demo

Student

DROP TABLE IF EXISTS `student`;
CREATE TABLE `student`  (
  `StudentId` int(11) NOT NULL AUTO_INCREMENT,
  `Name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `SchoolId` int(11) NOT NULL,
  PRIMARY KEY (`StudentId`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 13 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

INSERT INTO `student` VALUES (1, 'Zzr', 1);
INSERT INTO `student` VALUES (2, 'Ls', 2);
INSERT INTO `student` VALUES (3, 'Wem', 3);
INSERT INTO `student` VALUES (4, 'Hpf', 4);
INSERT INTO `student` VALUES (5, 'Zzr', 5);
INSERT INTO `student` VALUES (6, 'hpf', 2);
INSERT INTO `student` VALUES (7, 'hpf', 2);
INSERT INTO `student` VALUES (9, 'hpf', 2);
INSERT INTO `student` VALUES (11, 'qwe', 0);
INSERT INTO `student` VALUES (12, 'qwe', 0);
public class Student
    {
        [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
        public int StudentId { get; set; }
        public string Name { get; set; }
        public int SchoolId { get; set; }

        [Navigate(NavigateType.OneToOne, nameof(SchoolId))]//一对一 SchoolId是Student类里面的
        public School School { get; set; } //不能赋值
    }

School

CREATE TABLE `school`  (
  `SchoolId` int(11) NOT NULL AUTO_INCREMENT,
  `SchoolName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`SchoolId`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

INSERT INTO `school` VALUES (1, '一中');
INSERT INTO `school` VALUES (2, '二中');
INSERT INTO `school` VALUES (3, '三中');
INSERT INTO `school` VALUES (4, '四中');
INSERT INTO `school` VALUES (5, '五中');
public class School
    {
        [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
        public int SchoolId { get; set; }
        public string SchoolName { get; set; }
    }

1.单表分页查询

int pageNumber = 1;//第几页(可随意修改查看结果)
int pageSize = 2;//每页多少数据
int totalNumber = 0;//总数据
List<Student> list = db.Queryable<Student>().ToPageList(pageNumber, pageSize, ref totalNumber);

//SELECT `StudentId`,`Name`,`SchoolId` FROM `Student`     LIMIT 0,2

2.异步单表分页查询

int pageNumber = 1;//第几页
int pageSize = 2;//每页多少数据
RefAsync<int> totalNumber = 0;//总数据
List<Student> list = await db.Queryable<Student>().ToPageListAsync(pageNumber, pageSize, totalNumber);

//SELECT `StudentId`,`Name`,`SchoolId` FROM `Student`     LIMIT 0,2

3.多表分页查询

int pageNumber = 1;//第几页
int pageSize = 2;//每页多少数据
int totalNumber = 0;//总数据

var cs = db.Queryable<Student, School>((st, sc) => new JoinQueryInfos(JoinType.Left, st.SchoolId == sc.SchoolId))
                .Select((st, sc) => new { Id = st.SchoolId, StudentName = st.Name, SchoolName = sc.SchoolName })
                .ToPageList(pageNumber, pageSize,ref totalNumber);

//SELECT  `st`.`SchoolId` AS `Id` , `st`.`Name` AS `StudentName` , `sc`.`SchoolName` AS `SchoolName`  FROM `Student` st Left JOIN `School` sc ON ( `st`.`SchoolId` = `sc`.`SchoolId` )      LIMIT 0,2

4.异步多表分页查询

int pageNumber = 1;//第几页
int pageSize = 2;//每页多少数据
RefAsync<int> totalNumber = 0;//总数据

var cs =await db.Queryable<Student, School>((st, sc) => new JoinQueryInfos(JoinType.Left, st.SchoolId == sc.SchoolId))
                .Select((st, sc) => new { Id = st.SchoolId, StudentName = st.Name, SchoolName = sc.SchoolName })
                .ToPageListAsync(pageNumber, pageSize, totalNumber);

//SELECT `st`.`SchoolId` AS `Id` , `st`.`Name` AS `StudentName` , `sc`.`SchoolName` AS `SchoolName`  FROM `Student` st Left JOIN `School` sc ON ( st`.`SchoolId` = `sc`.`SchoolId` ) LIMIT 0,2

5.原始分页Sql语句

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

6.SqlSever2012分页

5.0.3.2以上的版本支持

把  ToPageList 换成  ToOffsetPage

📄文档参考:分页查询

SqlSugar分页查询避坑指南:同步vs异步、ToPageList的5个隐藏技巧 本文深入解析SqlSugar ORM框架中分页查询的核心技巧与常见陷阱。重点对比了同步与异步分页(ToPageList vs ToPageListAsync)的应用场景与性能影响,并揭示了页码起始、总页数计算、大数据量Count性能、排序优化及多表联查等5个关键技巧,帮助开发者在WinForm及Web项目中实现高效、稳定的数据分页。 阅读详情

相关推荐

WinForm实战:SqlSugar分页查询从入门到精通(附完整源码)

本文详细介绍了在WinForm项目中如何使用SqlSugar ORM框架实现高效的分页查询。从基础的环境配置、实体设计,到使用Queryable构建查询和ToPageList进行分页,提供了完整的实战代码示例。文章还深入探讨了多表关联查询、动态条件筛选、性能优化等高级技巧,并展示了如何封装可复用的分页控件,帮助开发者构建流畅的桌面应用数据展示界面。

weixin_29279047的博客 422

学习SqlSugar的基本用法(分页查询)

学习SqlSugar的分页查询基本用法

gc_2299的博客 4702

实战对比:FreeSql vs SqlSugar 在.NET Core下的CRUD性能差异(附测试代码)

本文通过实战测试,详细对比了FreeSql与SqlSugar在.NET Core环境下对SQL Server数据库的CRUD性能差异。测试涵盖单条插入、批量插入、更新和查询等核心操作,并提供了完整的测试代码。结果显示,SqlSugar在单条插入和利用BulkCopy进行大批量插入时表现更优,而两者在常规更新与查询上性能接近。文章旨在为.NET开发者在ORM框架选型时提供基于数据的参考。

grafana6viz的博客 275

基于SqlSugar实现基础的增删改查及分页查询

基于SqlSugar实现基础的增删改查及分页查询

qq_54861245的博客 3387

SqlSugar分页查询实战:WinForm高效数据展示方案

本文详细介绍了在WinForm桌面应用中,如何利用SqlSugar ORM框架的ToPageList方法实现高效分页查询。通过同步与异步分页、多表关联查询等实战示例,解决了大数据量加载导致的界面卡顿问题,并提供了构建分页导航界面、性能优化及常见问题解决方案,助力开发者提升WinForm应用的数据展示性能与用户体验。

weixin_29237635的博客 357

从零到一:鲲鹏920服务器上的DeepSeek模型部署全流程解析

本文详细解析了在华为鲲鹏920服务器上部署DeepSeek模型的全流程,包括环境准备、模型服务框架部署、性能优化及生产环境方案。通过ARM架构优化和量化技术,显著提升模型推理效率,适用于企业级AI应用场景,助力国产化技术落地。

weixin_29094775的博客 590

Sqlsugar+vue2实现增删改查,分页查询,net6实现

前端使用vue2,后端使用net6,使用sqlsugar连接数据库,实现了增删改查,分页查询

Ronion123的博客 1108

2019年上交电院计算机直博保研经历

本人选报的是上交六月一日在武汉举办的直博选拔,五月三十一日到达酒店,地点在武汉大学旁边(PS:上交是不管住宿、来回车票的,~划重点~包括夏令营),入住后当然是紧张的准备英语面试等等内容了,当天我是排在了下午面试,感觉还很好,上午可以多睡一会,最好能够去踩踩点上午,然后下午面试一定要早去,说是一点开始,但是老师十二点半就开始让学生进去了,有一个同学排在第二个,但是当时叫到他时还不到一点,没到,最后据...

LifeMaker的博客 4871

【超实用技巧】SqlSugar让关联表总数统计如此简单!

有这样的一个需求,查询一张表的时候,需要查询某条数据在其关联表中的总数。这样的表达看起来比较白痴。用一个例子做下说明。

What If... 2499

YOLOv8模型压缩终极方案:LAMP剪枝实战,速度提升不掉点

一个庞大的模型虽然强大,但在实际部署,尤其是资源受限的边缘设备(如无人机、移动电话、嵌入式系统)上,却面临着严峻的挑战:高昂的内存占用、巨大的计算量以及随之而来的高延迟和高能耗。本教程从LAMP剪枝的深刻理论出发,详细解释了它如何通过最小化最坏情况下的L2失真,并借助巧妙的数学简化,最终推导出一种高效、无超参数、层自适应的剪枝策略。它如同为臃肿的模型进行一次精准的“瘦身手术”,通过移除网络中冗余或不重要的权重、神经元甚至整个结构,来显著降低模型的参数量和计算量(FLOPs),从而实现推理加速和资源节约。

LXY_LOVE36的博客 169

37、基于视觉的轻量级面部呼吸和心率测量技术

本文提出了一种基于视觉的轻量级面部呼吸和心率测量技术,通过远程光电容积脉搏波描记法(RPPG)和面部振动信息实现非接触式生理信号采集。创新性地结合框选和特征点选择多个感兴趣区域(ROI),并采用光流跟踪、主成分分析(PCA)和集成经验模态分解(EEMD)等方法优化信号处理流程。实验结果表明,该方法在测量精度和稳定性方面优于传统方法,并可在树莓派4等低功耗平台上实现实时运行,具有广泛的应用前景。

r7s8t的博客 302

SqlSugar.NET 之Select,Delete,分页查询

1.select 返回指定列匿名类集合 .Select 用法-SqlSugar4-文档园 SqlSugar 常用查询实例-拉姆达表达式 - 天马 3798 - 博客园 string sql; var JArray1 = Newtonsoft.Json.JsonConvert.DeserializeObject<Newtonsoft.Json.Linq.JArray>(Newtonsoft.Json.JsonConvert.SerializeObject(db.Ado.SqlQuery<

极客神殿 3516

智能体开发套件(ADK)介绍

city } ---") city_normalized = city . lower() . replace(" " , "") # 模拟天气数据库 mock_weather_db = {

lpfasd123的博客 1386

sqlsugar分页查询语句例子详解

这段代码利用SqlSugar库的链式方法构建查询,通过动态设置Where条件和排序字段,实现灵活的分页数据查询。Where方法中的内容可以根据实际业务需求,动态构建各种查询条件,从简单的相等、范围查询到复杂的组合条件。

m0_73847536的博客 1847

Pointnet++改进90:2025最新改进模块-EVA模块

本教程提出了一种改进PointNet++特征提取模块的方法,通过在PointNetSetAbstraction模块中加入NAMAttention注意力机制,显著提升了模型性能。具体改进包括:1)新建eva.py文件,实现了包含SDLSKA、CKS等关键组件的EVA模块;2)在pointnet2_utils.py中添加Conv和PointNetSetAbstractionAttention类,整合注意力机制;3)修改pointnet2_sem_seg.py模型结构。这种改进方法降低了实现难度,同时保持了33F

AIcurator的博客 357

Trae IDE项目开发全流程深度技巧与最佳实践

2026年AI开发新范式:Trae AI IDE深度解析 摘要 2026年,AI已成为软件开发的核心驱动力。字节跳动推出的AI原生IDE——Trae,从根本上重塑了开发体验,将AI作为第一公民而非附加功能。Trae通过深度集成大型语言模型和创新交互模式,解决了现代开发中的重复劳动、信息过载等核心痛点。 报告全面剖析了Trae的核心功能: 智能代码生成:支持上下文感知续写、自然语言驱动生成和多模态输入转换 对话式AI助手:提供侧边栏和行内对话模式,支持代码解释、Bug修复、重构建议等 Builder/SOLO

公众号:AI前沿侦探 155

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

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

李赛赛的专栏 1848

异构图中的注意力机制网络:节点级别和语义级别的注意力(Python实现)

在本文中,我们介绍了如何使用Python实现异构图中的节点级别注意力和语义级别注意力。通过语义级别注意力,我们可以根据节点的语义信息对节点进行加权聚合。在本文中,我们将介绍如何使用Python实现异构图中的注意力机制网络,包括节点级别的注意力和语义级别的注意力。最后,我们使用注意力权重对节点特征进行加权聚合,得到聚合后的节点表示。然后,将聚合后的节点表示传递给语义级别注意力模型,根据节点的语义信息进行加权聚合,得到最终的表示。函数中,首先使用节点级别注意力模型对节点特征进行聚合,得到聚合后的节点表示。

HackNebulaZ的博客 480

SqlSugar高级查询终极指南:Join查询、子查询与分页查询实战技巧

SqlSugar作为.NET开源ORM框架,提供了强大的高级查询功能,让开发者能够轻松处理复杂的数据查询场景。本文将深入解析SqlSugar中Join查询、子查询和分页查询的核心技巧,帮助您快速掌握这些高级查询方法。 ## 🔥 Join查询:多表关联查询的终极解决方案 SqlSugar的Join查询语法简洁直观,支持多种关联方式。通过`JoinQueryInfos`和`JoinType`枚举

gitblog_00849的博客 546

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

MySQL和SQLSugar百万条数据查询分页优化

在面对百万条数据的查询时,优化MySQL和SQLSugar的分页性能是非常重要的。通过合理使用索引、调整查询语句、使用缓存以及采用高效的分页策略,可以显著提高查询效率。本文介绍的技巧和方法,可以为开发人员在数据处理和查询优化中提供有效的指导,提升系统的性能和用户体验。

yuan19997的博客 874

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SqlSugar操作笔记

【代码】SqlSugar操作笔记。

风,停了 3046

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【C#】SqlSugar:轻量、高效、灵活的 .NET ORM 框架

SqlSugar 是一个功能强大、使用简单的 .NET ORM(对象关系映射)框架。作为一个开源的 ORM 框架,SqlSugar 提供了与数据库交互的高效解决方案,支持各种数据库如 SQL Server、MySQL、Oracle、SQLite、PostgreSQL 等。它具有强大的查询功能、丰富的表达式支持,以及轻量级的特性,深受 .NET 开发者的青睐。

Unity打怪升级 5096

SQLSugar vs 原生ADO.NET:开发效率对比实验

最近在做一个数据密集型的项目时,我一直在思考如何提升开发效率。作为一个长期使用ADO.NET的开发者,我决定做个实验,对比下传统ADO.NET和现代ORM框架SQLSugar在实际开发中的差异。这个测试让我对ORM工具的价值有了全新的认识。最方便的是它的一键部署功能,我的测试项目可以立即生成可访问的演示地址,省去了配置环境的麻烦。为了公平对比,我创建了两个独立项目,分别使用SQLSugar和ADO.NET实现相同的数据库操作。SQLSugar的代码量只有ADO.NET的1/3,且更不容易出错。

StarfallRaven13的博客 656

深入浅出 SQLSugar:快速掌握高效 .NET ORM 框架

通过链式操作简化常见数据库操作。优化底层 SQL 执行效率。兼容 SQL Server、MySQL、SQLite、PostgreSQL、Oracle 等。支持事务、动态表名、分页、多表联查等高级特性。SQLSugar 支持通过特性映射数据库表和字段。[SugarTable("Users")] // 指定数据库表名为 "Users"[SugarColumn(IsPrimaryKey = true, IsIdentity = true)] // 主键且自增set;set;set;

2509_93925458的博客 870

.netcore3.1+sqlsugar环境下,分页查询的数据时有时无的问题及其解决方案

问题描述:分页查询,如果查询页的第一个数据为空会导致这一页下面的数据全部为空。解决办法:把sqlsugar更新到最新版。

zzx98223的博客 360
上一篇: SqlSugar 1.基础查询
下一篇: SqlSugar 3.分组去重
DotNeter-Hpf
博客等级 码龄9年 38粉丝 96原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DotNeter-Hpf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值