我对Linq完全陌生。
我需要将分页逻辑从SQL转换为Linq。
我在SQL中的分页逻辑是:

where num BETWEEN ((@pageNumber-1)*@pageSize) + 1 and (@pageSize * @pageNumber)


因此,如果pageNumber2并且pageSize30,我的查询将把记录从行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/

10-11 22:52