我使用linq语句来获取我的公司评论,但它跳过了错误的结果。Linq跳过跳过错误的结果?
如果我通过它currentPage = 1它会得到正确的结果,如果我通过它currentPage 2它做错了。每页的评论数量为10. GUID ID也正确传递。
public IList<SupplierReview> GetAmount(int pageAmount, int currentPage, Guid companyId)
{
var total = _context.SupplierReview.Count();
var skipAmount = pageAmount * (currentPage - 1);
if (skipAmount < total)
{
if (pageAmount < (total - skipAmount))
{
//return the page amount of reviews
return _context.SupplierReview
.Where(x => x.Company.Id == companyId)
.OrderBy(x => x.Id)
.OrderBy(x => x.ReviewDate)
.Skip(skipAmount)
.Take(pageAmount)
.ToList();
}
else
{
//if the left amount is less than the pageAmount,
//then only the leftovers should get taken
return _context.SupplierReview
.Where(x => x.Company.Id == companyId)
.OrderBy(x => x.Id)
.OrderBy(x => x.ReviewDate)
.Skip(skipAmount)
.Take(total - skipAmount)
.ToList();
}
}
//if nothings left, return null
return null;
}
错误可能是愚蠢的,但我似乎无法看到它......任何想法?
谢谢!
第二次调用'OrderBy'(在每个查询中)应该是'ThenBy'而不是?第一个'OrderBy'被扔掉了。 – Mephy