Odata v4.0には、$ expandと$ selectを組み合わせるオプションがありますか?
ProductItemChoicesとitemの特定の列を取得しようとしているシナリオがあります。以下のクエリは、productItemChoicesのすべての列を提供します。 productItemChoicesに必要な列は1つだけです
odata/Products(08f80b45-68a9-4a9f-a516-556e69e6bd58)?$expand=productItemChoices($expand=item($select=name))
これについて多くの時間を過ごした後、私は最終的に答えを得ました。 select
をexpand
内にネストするには、;
を区切り文字として使用します。
odata/Products(8)?$expand=choices($select=col1,col2;$expand=item($select=name))
これは OData v4 $expand
ドキュメント に記載されています。ドキュメントには、次のような他の有用な例もリストされています。
Categories?$expand=Products($filter=DiscontinuedDate eq null)
Categories?$expand=Products/$count($search=blue)
選択では、エンティティ/属性を使用して、展開されたエンティティの特定の属性を選択できます。
$select=productItemChoices/columnyouwant
クエリ内のエンティティの関係についてはわかりません。深く展開するとき、次の構文を使用しました(かっこなし)-以下では、ProductsがproductItemChoicesに関連し、productItemChoicesにitemがあると仮定しています
$expand=productItemChoices, productItemChoices/item
次に、選択する
$select=productItemChoices/productItemChoicesGuid, productItemChoices/item/name
明らかに、関係が異なる場合は、いくつか変更する必要があります