我对Linq完全陌生。
我需要将分页逻辑从SQL转换为Linq。
我在SQL中的分页逻辑是:
where num BETWEEN ((@pageNumber-1)*@pageSize) + 1 and (@pageSize * @pageNumber)
因此,如果
pageNumber
是2
并且pageSize
是30
,我的查询将把记录从行31
到行60
。我在LINQ中实现了相同的逻辑,但是没有记录错误:
query.Skip(pageNumber - 1).Take(pageSize * pageNumber).AsQueryable();
有人可以告诉我我的LINQ查询出了什么问题吗?
最佳答案
您必须使用与SQL中相同的方法,将跳过的内容乘以页面大小,然后下一步获取所需的行。
所以对你来说就像:
query.Skip((pageNumber - 1)*pageSize).Take(pageSize).AsQueryable();
关于c# - 将分页逻辑从SQL转换为Linq,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40277895/