OData $选择不在Web API上工作

时间:2013-07-12 14:59:27

标签: c# odata asp.net-web-api

我正在尝试使用OData从我的Web API返回一个较小的分页结果集。我正在修改一个大的现有API,所以我希望能够只为这一个控制器和方法执行此操作,最好不使用NuGet,EdmModels等广泛的“Microsoft ASP.NET Web API OData”包。

我的$ top和$ skip在我的方法中工作正常,但是我的$选择被忽略了。

我的方法:

    [Queryable(AllowedQueryOptions = System.Web.Http.OData.Query.AllowedQueryOptions.Select | System.Web.Http.OData.Query.AllowedQueryOptions.Top | System.Web.Http.OData.Query.AllowedQueryOptions.Skip )]
[HttpGet]
public HttpResponseMessage GetByType(OrganizationType type) {
    var results = _service.List(type);
    return(Request.CreateResponse<IQueryable<OrganizationModel>>(results.Any() ? HttpStatusCode.OK : HttpStatusCode.NotFound, results.AsQueryable<OrganizationModel>()));
  }
}

为什么它忽略$ select?

1 个答案:

答案 0 :(得分:4)

'Microsoft ASP.NET Web API OData'4.0.30506包没有$ select和$ expand支持。要获得$ select和$ expand支持,您必须升级到我们最新的软件包之一。 5.0.0-beta2应该有效。或者,您也可以尝试我们的nightly builds以获取所有最新功能。