简体   繁体   English

OData $select 不适用于 Web API

[英]OData $select not working on Web API

I'm trying to use OData to return a smaller, paginated result set from my web API.我正在尝试使用 OData 从我的 Web API 返回较小的分页结果集。 I'm modifying a large, existing API so I would like to be able to do this for only this one controller and method, preferably without using the extensive 'Microsoft ASP.NET Web API OData' package from NuGet, EdmModels, etc..我正在修改一个大型的现有 API,因此我希望能够仅针对这个控制器和方法执行此操作,最好不要使用来自 NuGet、EdmModels 等的广泛的“Microsoft ASP.NET Web API OData”包。

I've got $top and $skip working fine in my method below, but my $selects are being ignored.我在下面的方法中让 $top 和 $skip 工作正常,但是我的 $selects 被忽略了。

My method:我的方法:

    [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>()));
  }
}

Any ideas why it's ignoring $select?任何想法为什么它忽略 $select?

Microsoft ASP.NET Web API OData 4.0.30506 package doesn't have the $select and $expand support. Microsoft ASP.NET Web API OData 4.0.30506包没有$select$expand支持。 To get $select and $expand support, you have to upgrade to one of our latest packages.要获得$select$expand支持,您必须升级到我们最新的软件包之一。 5.0.0-beta2 should work. 5.0.0-beta2应该可以工作。 Optionally, you can try our nightly builds as well to get all the latest features.或者,您也可以尝试我们的夜间构建以获取所有最新功能。

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

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