从2015年1月开始应用EnableQueryAttribute是正确/不正确的?
下面链接的文件:
表示:
[EnableQuery]属性允许客户端使用查询选项(如$ filter,$ sort和$ page)修改查询。有关更多信息,请参阅支持OData查询选项。
以下链接文件:
http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/supporting-odata-query-options
表示:
EnableQuerySupport方法为任何返回IQueryable类型的控制器操作全局启用查询选项。
但是这篇关于WebApi 2.2上的OData 4的文档已经将它放在了返回IHttpActionResult的行为上:
[ODataRoutePrefix("Teams")]
public class TeamsEntitySetController : ODataController
{
private readonly LeageContext _leage = new LeageContext();
[EnableQuery]
[ODataRoute]
public IHttpActionResult GetFeed()
{
return Ok(_leage.Teams);
}
[ODataRoute("({id})")]
[EnableQuery]
public IHttpActionResult GetEntity(int id)
{
return Ok(SingleResult.Create<Team>(_leage.Teams.Where(t => t.Id == id)));
}
}
我很想找到有关OData v4 / WebApi 2.2的最新,准确和一致的文档。
今天哪个是正确的?
答案 0 :(得分:9)
使用全局配置(HttpConfiguration对象的实例)并调用
config.Filters.Add(new EnableQueryAttribute()
{
PageSize = 2
// .. other settings
});
这是有效的