0

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

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

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

有什么办法可以完成我想做的事情吗?

4

1 回答 1

1

已经有一个工作项:

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

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

于 2013-03-22T20:23:20.660 回答