WebAPI 2.2 OData v4 适用于哪里?

从2015年1月起应用EnableQueryAttribute在哪里正确/不正确?

该文件链接如下:

http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/odata-v4/create-an-odata-v4-endpoint

说:

[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的行为上:

http://blogs.msdn.com/b/webdev/archive/2014/03/13/getting-started-with-asp-net-web-api-2-2-for-odata-v4-0.aspx

[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(_leage.Teams.Where(t => t.Id == id))); } } 

我想疯狂地尝试在OData v4 / WebApi 2.2上找到最新,准确和一致的文档。

今天哪个是正确的?

使用全局配置(HttpConfiguration对象的实例)并调用

 config.Filters.Add(new EnableQueryAttribute() { PageSize = 2 // .. other settings }); 

这很有效