Asp.net web api ASP.NET WebAPI OData服务器端分页

Asp.net web api ASP.NET WebAPI OData服务器端分页,asp.net-web-api,entity-framework-5,paging,odata,Asp.net Web Api,Entity Framework 5,Paging,Odata,我有一个ASP.NETWebAPI OData服务。其中一个EntitySetController.Get()方法返回实体框架查询。由于实体框架查询返回很多行,因此我希望使用服务器端分页来保持内存占用合理。在这种情况下,$skiptoken比$skip快得多 [Queryable(PageSize=n)]属性似乎无法完全满足我的需要,原因有二: 它们实际的SQL查询没有分页。就像它在做一样。AsEnumerable().Take(n) “下一个链接”使用$skip而不是$skiptoken

我有一个ASP.NETWebAPI OData服务。其中一个EntitySetController.Get()方法返回实体框架查询。由于实体框架查询返回很多行,因此我希望使用服务器端分页来保持内存占用合理。在这种情况下,$skiptoken比$skip快得多

[Queryable(PageSize=n)]属性似乎无法完全满足我的需要,原因有二:

  • 它们实际的SQL查询没有分页。就像它在做一样。AsEnumerable().Take(n)
  • “下一个链接”使用$skip而不是$skiptoken

有没有办法完成我想做的事情?

已经有了一个工作项:


你可以投票支持我。同时,没有什么可以阻止您不使用PageSize,自己实现分页
ODataQueryOptions
确实公开了$skiptoken原始值供您解析,您可以返回一个
PageResult
来表示结果页面,并基于$skiptoken创建下一个页面链接。

似乎WCF Data Services的工作方式是默认的。