linq to list 时报错.ToList() 其他信息: Count 必须具有非负值。

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)后调试成功。

猜你喜欢

转载自www.cnblogs.com/YorkZhangYang/p/12904143.html