如何用Dapper实现支持筛选、排序、分页及结果集总数查询的复杂分页效果?

2026-04-01 10:450阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1070个文字,预计阅读时间需要5分钟。

如何用Dapper实现支持筛选、排序、分页及结果集总数查询的复杂分页效果?

简介:之前在博客园上搜索了Dapper分页的实现,发现有些是基于存储过程的,需要支持分页,但通常不支持排序或搜索条件,维护起来可能不太方便。

代码:首先,查看代码:[链接](https://)

简介

之前事先搜索了下博客园上关于Dapper分页的实现,有是有,但要么是基于存储过程,要么支持分页,而不支持排序,或者搜索条件不是那么容易维护。

代码

首先先上代码: github.com/jinweijie/Dapper.PagingSample

方法定义

以下是我的一个分页的实现,虽然不是泛型(因为考虑到where条件以及sql语句的搭配),但是应该可以算是比较通用的了,方法定义如下:

public Tuple<IEnumerable<Log>, int> Find(LogSearchCriteria criteria , int pageIndex , int pageSize , string[] asc , string[] desc);

以上函数定义是一个查询Log的示例,返回结果中,Tuple的第一个值是结果集,第二个值是总行数(例如,总共有100条记录,每页10条,当前第一页,那么第一个值是10条记录,第二个值是100)

在示例项目中,我用两种方法实现了分页:

1. 第一种是基于2此查询,第一次得到总数,第二次查询得到结果集。

阅读全文

本文共计1070个文字,预计阅读时间需要5分钟。

如何用Dapper实现支持筛选、排序、分页及结果集总数查询的复杂分页效果?

简介:之前在博客园上搜索了Dapper分页的实现,发现有些是基于存储过程的,需要支持分页,但通常不支持排序或搜索条件,维护起来可能不太方便。

代码:首先,查看代码:[链接](https://)

简介

之前事先搜索了下博客园上关于Dapper分页的实现,有是有,但要么是基于存储过程,要么支持分页,而不支持排序,或者搜索条件不是那么容易维护。

代码

首先先上代码: github.com/jinweijie/Dapper.PagingSample

方法定义

以下是我的一个分页的实现,虽然不是泛型(因为考虑到where条件以及sql语句的搭配),但是应该可以算是比较通用的了,方法定义如下:

public Tuple<IEnumerable<Log>, int> Find(LogSearchCriteria criteria , int pageIndex , int pageSize , string[] asc , string[] desc);

以上函数定义是一个查询Log的示例,返回结果中,Tuple的第一个值是结果集,第二个值是总行数(例如,总共有100条记录,每页10条,当前第一页,那么第一个值是10条记录,第二个值是100)

在示例项目中,我用两种方法实现了分页:

1. 第一种是基于2此查询,第一次得到总数,第二次查询得到结果集。

阅读全文