一、分页的分类及分析
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));
. 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
@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
(
SELECT TOP 每页条数*(页数-1) id FROM Table_Search ORDER BY id
)
ORDER BY id