首页 / .NET / 正文

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

12211 发布于: 2018-02-07 读完约需2分钟

问题描述

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

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](十)

下一篇: [ASP.NET Core Razor Pages系列教程]开始安装和使用ASP.NET Core 2.x(01)

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

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册