linq 分页
第一个版本,只针对一个实体,没有用泛型
static List<Student> GetPageList(Func<Student,bool> whereLambda,Func<Student,object> orderLambda,
int pageSize,int pageIndex)
{
PeopleEntities context = new PeopleEntities();
var list = context.Student.Select(s => s).Where(whereLambda).OrderByDescending(orderLambda).
Skip((pageIndex - 1) * pageSize).//跳过对少项
Take(pageSize);//取多少条
return list.ToList();
}
第二个版本会更好,用了泛型,适合一组实体。
public IQueryable<T> GetPageList(Expression<Func<T,bool>> wherelambda,
Expression<Func<T,object>> orderlambda,int pageSize,int pageIndex)
{
var result = context.Set<T>().Where<T>(wherelambda).OrderBy(orderlambda)
.Skip((pageIndex - 1) * pageSize)
.Take(pageSize);
return result;
}