我有一个ASP.NET WebAPI OData服务 . 其中一个EntitySetController <,> . Get()方法返回一个实体框架查询 . 由于实体框架查询返回了大量行,我想使用服务器端分页来保持内存占用空间合理 . 此外,在这种情况下,$ skiptoken比$ skip快得多 .
[Queryable(PageSize = n)]属性似乎没有完全满足我的需要,原因有两个:
-
他们实际的SQL查询不像它正在做的那样.AsEnumerable() . Take(n)
-
"next link"使用$ skip而不是$ skiptoken
有没有办法完成我想要做的事情?
1 回答
已有一个工作项:
http://aspnetwebstack.codeplex.com/workitem/500
你可以投票 . 与此同时,没有什么可以阻止你不使用PageSize,并自己实现分页 .
ODataQueryOptions
确实公开$ skiptoken原始值供您解析,并且您可以返回PageResult<T>
来表示结果页面,其中包含基于$ skiptoken的下一页链接 .