【发布时间】:2014-08-09 03:16:45
【问题描述】:
我有一个使用 .NET 4.5 的 OData Web API 服务。它有一个从 EntitySetController 派生的 WebApi 控制器:
public class WorkItemsController : EntitySetController<WorkItem, string>
{
[Queryable(PageSize=100)]
public override IQueryable<WorkItem> Get()
{
// go to AWS DynamoDb, get the workitems and then return
}
}
如您所见,我将服务器端页面大小设置为 100。如果对象超过 100 个,则返回将包含如下链接:
<link rel="next" href="http://***/api/v1/WorkItems?$skip=100" />
这适用于 Microsoft SQL。但我正在使用 DynamoDb。 “skip=100”无法转换为 DynamoDb LastEvaluatedKey。所以在这里我想修改下一个链接,让它像这样返回 LastEvaluatedKey:
<link rel="next" href="http://***/api/v1/WorkItems?$skip=A12BSD123" />
所以基本上我想要自定义链接的能力。因此,当用户想要获取下一组时,他/她只需要使用此链接,我就可以从中获取 LastEvaluatedKey。
【问题讨论】:
标签: asp.net-web-api pagination odata iqueryable