Подтвердить что ты не робот

Где применяется WebAPI 2.2 OData v4 [EnableQuery]?

Где правильно/неверно применять EnableQueryAttribute с января 2015 года?

Документ, указанный ниже:

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.

Но этот документ для OData 4 на WebApi 2.2 поставил его на действия, возвращающие 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.

Что сегодня правильно?

4b9b3361

Ответ 1

Использовать глобальную конфигурацию (экземпляр объекта HttpConfiguration) и вызвать

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

это работает