Moon.Orm 5.0(MQL版)分页功能的设计(求指教,邀请您的加入)

一、分页的分类及分析 

1)分页的前置条件:

查询的目标条件、第几页、总页数(本质上由查询条件决定)、每页条数、请求地址、按照什么字段怎样排序

2)目标结果:

数据列表,List<T>返回

3)分页的分类

单表表名、该表的查询条件、选择的字段--->解决思路不言而喻

 

  

多表情况(先以连接查询为例)

解决思路:将整个语句 as Table_Search,然后按照数据的分页语句进行分页.

注:以下仅以sqlserver为例,设计时请考虑给类数据库分页情况不一样.

 

如下:

var m1=ClassSet.Select(ClassSet.ClassID,ClassSet.ClassName)
                    .LeftJoin(
                    UserSet.Select(UserSet.UserID))
                    .ON(ClassSet.ClassID.Equal(UserSet.UserID))
                    .Where(UserSet.UserID.BiggerThan(9));
 
SELECT [Class].[ClassID],[Class].[ClassName],[User].[UserID] FROM [Class] LEFT JOIN [User] ON [Class].[ClassID]=[User].[UserID]  WHERE  [User].[UserID]>@p1
@p1=9
------------->
select top 每页条数 * from (
SELECT [Class].[ClassID],[Class].[ClassName],[User].[UserID] FROM [Class] LEFT JOIN [User] ON [Class].[ClassID]=[User].[UserID]  WHERE  [User].[UserID]>@p1
as Table_Search
 
WHERE id NOT IN
          (
          SELECT TOP 每页条数*(页数-1) id FROM Table_Search ORDER BY id
          )
ORDER BY id

 

posted @   异地远程联网技术  阅读(1469)  评论(12编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示