EF分页方法提示出错,错误代码:
public List<T> GetPageList<Tkey>(int pageIndex, int pageSize, ref int rowCount, Expression<Func<T, bool>> whereLambda, Expression<Func<T, Tkey>> orderLambda, bool isAsc = true) { rowCount = db.Set<T>().Where(whereLambda).Count(); if(isAsc) { return db.Set<T>().Where(whereLambda).OrderBy(orderLambda).Skip((pageIndex) - 1 * pageSize).Take(pageSize).ToList(); } else { return db.Set<T>().Where(whereLambda).OrderByDescending(orderLambda).Skip((pageIndex) - 1 * pageSize).Take(pageSize).ToList(); } }
报错截图
错误原因:
Skip()的参数出错了,参数为负值,就抛出异常了,仔细检查一下计算跳过记录数的语句,发现Skip((pageIndex) - 1 * pageSize)语句有错。
改为:Skip((pageIndex - 1) * pageSize)后调试成功。