在 OData 中进行“稳定分页”的最佳实践是什么?

Rai*_*ast 5 odata

在这篇文章的评论(WCF 数据服务(OData)、SetEntitySetPageSize 和自定义操作的问题)中,提到了“OData 稳定分页”。

我对 OData 很陌生,并试图在 OData 查询中获得稳定的分页。

通过“稳定分页”,我的意思是有一个 OData 数据库,其中不断创建新条目,我希望分页不会被数据库中的新数据创建中断。

比如我得到第一页 by $top=100,然后得到第二页 by $top=100&$skip=100,然后是第三页 by $top=100&$skip=200,其中页大小为 100。 但是,因为数据库在变化,所以我跳过的数据可能不一定是相同的数据我从以前的请求中检索到。

就像图表示例显示了按条目创建时间、第一个请求和第二个请求排序的数据:

在此处输入图片说明

我想知道做“稳定分页”的最佳方法是什么?

谢谢!

Rai*_*ast 1

我当前的解决方案遵循本文的建议 - Markus Winand 的“Paging Through Results”:

http://use-the-index-luke.com/sql/partial-results/fetch-next-page

它讨论了稳定分页的通用解决方案,尽管它不是 OData 特定的,但它适用于我的场景。