EF实现分页查询+条件查询+排序
来源:互联网 发布:淘宝私人定制怎么设置 编辑:程序博客网 时间:2024/05/14 08:16
先来看看几个LINQ to SQL的几个函数。
Take
说明:获取集合的前n个元素;延迟。即只返回限定数量的结果集。
var q = (
from e in db.Employees
orderby e.HireDate
select e)
.Take(5);
语句描述:选择所雇用的前5个雇员。
Skip
说明:跳过集合的前n个元素;延迟。即我们跳过给定的数目返回后面的结果集。
var q = (
from p in db.Products
orderby p.UnitPrice descending
select p)
.Skip (10);
语句描述:选择10种最贵产品之外的所有产品。
OrderBy
适用场景:对查询出的语句进行排序,比如按时间排序 等等。
说明:按指定表达式对集合排序;延迟,:按指定表达式对集合 排序;延迟,默认是升序,加上descending表示降序,对应的扩展方法是 OrderBy和OrderByDescending
下面这个例子使用 orderby 按雇用日期对雇员进行排序:
var q =
from e in db.Employees
orderby e.HireDate
select e;
说明:默认为升序
看完这两个函数的使用方法,那么分页的思路也就很容易推出来了,若要显示第m页,每页n条数据,我们应该跳过n*(m-1)条数据,显示n条数据。
源码如下:
/// <summary> /// 分页查询 + 条件查询 + 排序 /// </summary> /// <typeparam name="Tkey">泛型</typeparam> /// <param name="pageSize">每页大小</param> /// <param name="pageIndex">当前页码</param> /// <param name="total">总数量</param> /// <param name="whereLambda">查询条件</param> /// <param name="orderbyLambda">排序条件</param> /// <param name="isAsc">是否升序</param> /// <returns>IQueryable 泛型集合</returns> public IQueryable<T> LoadPageItems<Tkey>(int pageSize, int pageIndex, out int total, Expression<Func<T, bool>> whereLambda, Func<T, Tkey> orderbyLambda, bool isAsc) { total = MyBaseDbContext.Set<T>().Where(whereLambda).Count(); if (isAsc) { var temp = MyBaseDbContext.Set<T>().Where(whereLambda) .OrderBy<T, Tkey>(orderbyLambda) .Skip(pageSize * (pageIndex - 1)) .Take(pageSize); return temp.AsQueryable(); } else { var temp = MyBaseDbContext.Set<T>().Where(whereLambda) .OrderByDescending<T, Tkey>(orderbyLambda) .Skip(pageSize * (pageIndex - 1)) .Take(pageSize); return temp.AsQueryable(); } }
//查询要求:每页10条,显示第2页,查询性别为“男”,按年龄增序排列
int totalRecord;
List<Student>result = studentService.LoadItems(10,2,out totalRecord,u=>u.Sex==”男”,u=>u.Age,True);
最近研究了点Linq to Sql的知识,发现还挺有意思的,欢迎大家和我一起交流。
- EF实现分页查询+条件查询+排序
- 用EF实现多条件查询
- struts hibernate spring 实现分页、排序、复杂条件查询②
- 分页&条件查询分页
- 【JqGrid】JqGrid前端分页+排序+查询条件
- maven后台实现无条件分页查询和条件分页查询
- solr查询索引,各种查询,查询字符串,过滤查询,条件查询,排序查询、分页查询、高亮查询
- ASPNETPager条件查询分页的实现
- Mybatis+Oracle实现按条件分页查询
- struts2实现条件查询分页代码
- SSH实现带条件查询分页功能
- Mybatis+Oracle实现按条件分页查询
- Java分页查询&条件查询
- 分页条件查询页面
- 有无条件分页查询
- 使用MVC,实现多条件查询,排序与分页 的 存储过程
- Entity Framework4.1实现动态多条件查询、分页和排序
- Entity Framework4.1实现动态多条件查询、分页和排序
- FFprobe使用指南
- timer+thread 入门,简单封装
- Python练习题(1)_斗地主实现
- 使用Groovy把json字符串转成Java代码
- hdu2037贪心
- EF实现分页查询+条件查询+排序
- matlab中遇到的一些问题
- 一例 Hive join 优化实战
- Isomorphic Strings
- python爬取京东所有iphone的价格和名称
- (含有头指针以及尾指针)单链表各类功能的实现
- 检测内存泄露
- NSAttributedString 详解
- csdn里面写入自己的源码