P34 翻页(上)






查询的字符串,本身不属于资源的一部分。如果pageSize传了100万 设置的数值比较大,也会造成性能问题,所以我们在服务器端也要对查询请求的笔数进行控制。如果没传参数,默认查询也应该分页。

应该是EF Core层进行分页

开始写代码

加上当前页和每页显示的数据,应该是通过FromQuery传递进来的。但是这里已经有了一个FromQuery的参数了。


在这个类里面加上分页的属性

设置默认的参数

pageSize被设置太大的问题,添加最大值。

快捷键propfull

自动生成


alt+enter。这个应该是Resharper里面的快捷键。



set这里就要进行比较

进入到这个方法里面,加分页

我们必须针对数据存储这个级别进行分页。
这里转换成了一个IQueryable类型,这个类型有个特点就是延迟执行。这里相当于开始组建查询表达式。

遇到toList或者SingleOrDefault时候才会真正的去执行sql

分页必须在所有的过滤之后、




这块代码的逻辑,可以直接删掉。这里把这段代码删掉。

测试



返回了空数组

这里加上默认值。




看下控制台执行的sql


加上分页的参数

故意不写pageSize。返回422表示客户端引起的错误。

pageNumber输入0返回了一条数据,这样也是不对的

我们需要自己在model类里面加上验证

结束

原文地址:https://www.cnblogs.com/wangjunwei/p/14106363.html