2011-01-07 52 views
0

在我的示例项目中,我将实体页面大小设置为20.然后我设置了一个实体集,其结果数可以被整除页面大小。例如,分类集有100个项目。当我去:WCF数据服务分页行为

http://localhost/Sample.svc/Categories?$skiptoken=80 

我得到了第81至第100个类别和页面有“下一个”链接

http://localhost/Sample.svc/Categories?$skiptoken=100 

我试着去那个网页,并没有返回。 这是什么解释?

回答

1

分页只需要下一个PageSize项目。如果发现少于这个数字,那么显然没有更多的项目可以返回,所以你不会得到下一个链接。如果查询返回请求数目的项目,运行时不会尝试确定这是否是最后一页,它只会返回下一个链接。可能发生这样的链接将不会返回结果。 事实上,下一个链接不会返回任何结果,但只要响应构成另一个链接,就会有更多结果。内置分页标准将返回预定义大小的页面(除最后一页外),但服务可以自由使用任何其他类型的分页,这些分页可能会为每个页面返回不同的大小(包括空白页面)。

要直接回答您的问题“为什么最后一页是空的?”: 运行时不会“向前看”,因此它无法分辨给定页是否是最后一页,预期的结果数量。展望未来将是昂贵的(要求超过必要的)并且可能是错误的(如果额外的结果导致错误......)。

+0

感谢您的回答。 – jean27 2011-01-11 03:52:40