.net - webapi中如何实现分页
问题描述
如何在 webapi dotnet core 中实现分页?
我尝试使用 Skip / take ,但是当只涉及 1 个表时, skip / take 可以工作。就我而言,我必须加入几个表然后实现分页。
var searchList = _context.Table1
.Include(b => b.Table2)
.Include(c => c.Table3)
.Include(c => c.Table4)
.Include(c => c.Table5)
.Include(c => c.Table6)
.Skip((pageNumber - 1) * pageSize)
.Take(pageSize)
.ToList();
当涉及多个表时,实现分页的更好方法是什么?
解决方案
考虑到这个MSDN 文档,您可以在.NET 5 SDK 和更高版本中使用带有 Where 子句的 Filtered Include。.NET 5 及更高版本中的 Include Where 子句支持此操作:
- 在哪里
- OrderBy(降序)
- ThenBy(降序)
- 跳过
- 拿
你的查询可以是这样的:
var query = _context.Table1
.Include(b => b.Table2.Skip((pageNumber - 1) * pageSize).Take(pageSize))
.Skip((pageNumber - 1) * pageSize)
.Take(pageSize)
.ToList();
推荐阅读
- tensorflow - 不将 TFLite 用于生产目的的原因是什么?
- javascript - “.addRole”的 Discord.js 问题
- reactjs - 如何在 React 中覆盖 material-ui-next css?
- javascript - FIREBASE 警告:TypeError:无法读取未定义的属性“then”
- reactjs - ReactJs - CSSAnimation 不工作
- groovy - 在 Groovy 中将 String 参数传递给 Object 方法参数
- c++ - 在 O(1) 时间内找到堆栈中的最小元素 C++
- oracle - 从 AWS DMS 连接到在我的笔记本电脑上运行的 Oracle
- python - 如果数据集或数据库发生微小变化,我们必须重新训练模型吗?
- c - 在 while 循环中同时使用 isalpha 和 toupper 会给出“索引超出范围”