xan*_*ndy 6 odata asp.net-web-api
一直在玩(单页应用程序)BigShelf样本.我发现非常有趣的是GetBooksForSearch方法(/ API/BigShelf/GetBooksForSearch),它需要附加的$filter,$inlinecount,$top,$skip用于寻呼和过滤的结果,这是不存在于控制器代码参数:
public IQueryable<Book> GetBooksForSearch
(string profileIds, Sort sort, bool sortAscending)
Run Code Online (Sandbox Code Playgroud)
我找不到任何关于Controller如何翻译和过滤结果的文档,更重要的是,如何配置这样的行为(例如,限制最大结果),任何人都有线索?
- 更新 -
发现MVC Web API正在发挥作用.但是我们如何配置呢?
Cod*_*ark 14
似乎已删除ResultLimitAttribute.看到这个提交
它被卷入[Queryable]属性的一个特性,现在OData支持需要该特性.见这里的讨论
现在正确使用
[Queryable(ResultLimit = 10)]
[UPDATE]
从RTM开始,Queryable的ResultLimit功能已被删除.此外,[可查询]已移至其自己的预览包.请参见本博客帖子的更多信息和这个职位上的新使用说明.
[更新2 11-16-12] 随着ASP.Net 2012秋季更新预览,事情再次更新.[Queryable]属性的ResultLimit属性已添加回OData包.
这是更新的Nuget包.在撰写本文时,它是一个PREVIEW包.
mar*_*ind 11
有一个动作过滤器属性ResultLimitAttribute,您可以在任何动作方法上使用该属性,该方法返回IQueryable<T>甚至IEnumerable<T>限制返回的数据量.
[ResultLimit(100)]
public IQueryable<Product> Get() {
// ...
}
Run Code Online (Sandbox Code Playgroud)