标签:
/// <summary> /// 终极版带lambada表达式的分页查询 /// </summary> /// <typeparam name="T">获取的分页实体的类型</typeparam> /// <param name="whereLambada">查询符合条件的lambada表达式</param> /// <param name="orderByLambada">分页根据什么字段进行排序</param> /// <param name="pageSize">一页多少条数据</param> /// <param name="pageIndex">当前页数</param> /// <returns>获取当前页数的实体对象</returns> static List<T> GetPageList<T>(Expression<Func<T,bool>> whereLambada,Expression<Func<T,object>> orderByLambada,int pageSize,int pageIndex) where T:class { //获取数据库模板的上下文对象 TestOAEntities context = new TestOAEntities(); //skip()==跳跃,越过多少列 Take==获取多少条 var pgList = context.Set<T>().Select(s => s).Where(whereLambada).OrderByDescending(orderByLambada).Skip((pageIndex-1)*pageSize).Take(pageSize); return pgList.ToList(); } //演化的由来 //第一步先查询出所有的符合要求的实体对象 static List<T> GetPageList<T>(Expression<Func<T,bool>> whereLambada) where T:class { //获取数据库模板的上下文对象 TestOAEntities context = new TestOAEntities(); //在where查询中要求传入的是一个当前实体的类型,传出的是一个bool类型的条件 //select(s=>s)表示选择所有的列,当只需要部分列的时候,select(s=>new{s.SID,s.SName}) var pgList = context.Set<T>().Select(s => s).Where(whereLambada); return pgList.ToList(); } //第二步根据要排序的字段进行排序 static List<T> GetPageList<T>(Expression< Func<T, bool>> whereLambada, Expression<Func<T, object>> orderByLambada) where T:class { TestOAEntities context = new TestOAEntities(); var pgList= context.Set<T>().Select(s=>s).Where(whereLambada).OrderByDescending(orderByLambada); return pgList.ToList();//取消延迟加载 } //传入当前分页,和一页几条数据的值 static List<T> GetPageList<T>(Expression<Func<T,bool>> whereLambada,Expression<Func<T,object>> orderByLambada,int pageSize,int pageIndex) where T:class { TestOAEntities context = new TestOAEntities(); var pgList= context.Set<T>().Select(s => s).Where(whereLambada).OrderByDescending(orderByLambada).Skip((pageIndex - 1) * pageSize).Take(pageSize); return pgList.ToList(); }
13 MVC------------EF的带Lambada表达式的分页通用方法
标签:
原文地址:http://www.cnblogs.com/clcloveHuahua/p/5404276.html