一、分頁的分類及分析
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