web-dev-qa-db-ja.com

ODataの複数のプロパティを展開する方法

次のOData式があるとします。

http://services.odata.org/northwind/northwind.svc/Categories?
    $expand=Products/Category

Products.Categoryを正しく展開します。

次に、別の物件も拡張したいと思います。たとえば、「Products.Supplier」です。

$expandの使用法を複製してみました:

http://services.odata.org/northwind/northwind.svc/Categories?
    $expand=Products/Category
    &$expand=Products/Supplier

しかし、このエラーを返すことに失敗しました:

Query parameter '$expand' is specified, but it should be specified exactly once.
16
mehrandvd

OData ABNFによると、展開構文は次のようになります。

expand = '$ expand' EQ expandItem *(COMMA expandItem)

これは次のようになります。

$expand=expandItem1,expandItem2,expandItem3,...

だから試してみてください:

http://services.odata.org/northwind/northwind.svc/Categories?$expand=Products/Category,Products/Supplier


詳細については、以下を参照してください。

http://www.odata.org/documentation/odata-version-2-0/uri-conventions/#ExpandSystemQueryOption

22
zoe

複数のレベルを展開するためにこの構文を試すこともできます。

$expand=Products($expand=Category),...

これは、WebAPIのMS OData実装でうまく機能します。

13
Marek