2

OData を使用して、Web API から小さなページ分割された結果セットを返そうとしています。大規模な既存の API を変更しているので、できれば NuGet、EdmModels などの広範な「Microsoft ASP.NET Web API OData」パッケージを使用せずに、この 1 つのコントローラーとメソッドに対してのみこれを実行できるようにしたいと考えています。

以下の方法で $top と $skip が正常に動作していますが、私の $selects は無視されています。

私の方法:

    [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 を無視する理由はありますか?

4

1 に答える 1

5

Microsoft ASP.NET Web API OData 4.0.30506$selectパッケージには、およびサポートがありません$expand。取得$selectして$expandサポートするには、最新のパッケージのいずれかにアップグレードする必要があります。5.0.0-beta2が動作するはずです。必要に応じて、ナイトリー ビルドを試して、最新の機能をすべて入手することもできます。

于 2013-07-15T23:39:00.057 に答える