P34 翻页(上)
查询的字符串,本身不属于资源的一部分。如果pageSize传了100万 设置的数值比较大,也会造成性能问题,所以我们在服务器端也要对查询请求的笔数进行控制。如果没传参数,默认查询也应该分页。
应该是EF Core层进行分页
开始写代码
加上当前页和每页显示的数据,应该是通过FromQuery传递进来的。但是这里已经有了一个FromQuery的参数了。
在这个类里面加上分页的属性
设置默认的参数
pageSize被设置太大的问题,添加最大值。
快捷键propfull
自动生成
alt+enter。这个应该是Resharper里面的快捷键。
set这里就要进行比较
进入到这个方法里面,加分页
我们必须针对数据存储这个级别进行分页。
这里转换成了一个IQueryable类型,这个类型有个特点就是延迟执行。这里相当于开始组建查询表达式。
遇到toList或者SingleOrDefault时候才会真正的去执行sql
分页必须在所有的过滤之后、
这块代码的逻辑,可以直接删掉。这里把这段代码删掉。
测试
返回了空数组
这里加上默认值。
看下控制台执行的sql
加上分页的参数
故意不写pageSize。返回422表示客户端引起的错误。
pageNumber输入0返回了一条数据,这样也是不对的
我们需要自己在model类里面加上验证
结束