2015-01-09 6 views
13

Где это правильно или неправильно применять EnableQueryAttribute с января 2015 года?Где применяется WebAPI 2.2 OData v4 [EnableQuery]?

Документ связан ниже:

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

Говорит:

Атрибут [EnableQuery] позволяет клиентам изменить запрос, используя параметры запроса, такие как $ фильтр, $ рода, и $ 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.

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

ответ

6

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

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

это работает

Смежные вопросы