[Dapper].NET/C#使用Dapper如何实现查询的分页功能?

.NET 作者: Rector 355阅读 0评论 0收藏 收藏本文

郑重申明:本文未经许可,禁止任何形式转载

问题描述

比如当前有一个查询文章列表并且分页的需求,使用的是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

阅读了该文章的人还浏览了...

本文永久链接码友网 » [Dapper].NET/C#使用Dapper如何实现查询的分页功能?

发布于: 2018-02-07 13:09:21
分享扩散:

文章评论

获取验证码