ASP.NET WebAPI OData服务器端分页

时间:2013-03-22 19:04:33

标签: asp.net-web-api entity-framework-5 paging odata

我有一个ASP.NET WebAPI OData服务。其中一个EntitySetController<,> .Get()方法返回实体框架查询。由于实体框架查询返回了大量行,我想使用服务器端分页来保持内存占用空间合理。此外,在这种情况下,$ skiptoken比$ skip快得多。

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

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

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

1 个答案:

答案 0 :(得分:1)

已有一个工作项目:

http://aspnetwebstack.codeplex.com/workitem/500

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

相关问题