繁体   English   中英

WebAPI 2.2 OData v4 [EnableQuery]在哪里适用?

[英]Where does WebAPI 2.2 OData v4 [EnableQuery] apply?

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

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

今天哪个是正确的?

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

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

这很有效

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM