问题描述
比如当前有一个查询文章列表并且分页的需求,使用的是Dapper
这个轻量级的.NET
ORM
组件。那么如何实现基于Dapper
的查询并分页呢?
方案一
首先,Dapper
组件中并未内置分页的功能,但是使用Dapper
实现分页也并不难,比如我们可以使用Dapper
的查询功能执行分页查询语句,然后返回一个IEnumerable<T>
的查询结果集合,如:
SELECT *
FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY InsertDate) AS RowNum, *
FROM Posts
WHERE InsertDate >= '1900-01-01'
) AS result
WHERE RowNum >= 1 // *此处改为你的分页参数(分页起始位置)
AND RowNum < 20 //*分页结束位置
ORDER BY RowNum
以上语句支持SQL Server 2005及以上版本。
方案二
如果你使用的是SQL Server 2012及以上版本的话,你还可以使用SQL Server2012的更高级的分页查询SQL
语句:OFFSET
FETCH
,如:
SELECT * FROM [Posts]
ORDER BY [InsertDate]
OFFSET 20 ROWS
FETCH NEXT 5 ROWS ONLY
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册