Dans odata v4.0, existe-t-il une option pour combiner $ expand et $ select ensemble?
J'ai un scénario dans lequel j'essaie d'obtenir des colonnes spécifiques dans productItemChoices et item. La requête ci-dessous vous donnera tous les colonnes dans productItemChoices. Je n'ai besoin que d'une colonne dans le productItemChoices
odata/Products(08f80b45-68a9-4a9f-a516-556e69e6bd58)?$expand=productItemChoices($expand=item($select=name))
Après avoir passé beaucoup de temps là-dessus, j'ai finalement eu la réponse. Nous pouvons imbriquer select
dans expand
en utilisant ;
comme séparateur, quelque chose comme:
odata/Products(8)?$expand=choices($select=col1,col2;$expand=item($select=name))
Ceci est documenté dans OData v4 $expand
documentation . La documentation répertorie également d’autres exemples utiles tels que
Categories?$expand=Products($filter=DiscontinuedDate eq null)
Categories?$expand=Products/$count($search=blue)
dans la sélection, vous pouvez utiliser l'entité/l'attribut pour sélectionner des attributs spécifiques d'entités développées:
$select=productItemChoices/columnyouwant
Je ne suis pas sûr des relations entre les entités de votre requête. Lors de l’expansion en profondeur, j’ai utilisé la syntaxe suivante (sans les parenthèses) - Dans ce qui suit, je suppose que les produits concernent p
$expand=productItemChoices, productItemChoices/item
Ensuite, pour sélectionner
$select=productItemChoices/productItemChoicesGuid, productItemChoices/item/name
Évidemment, si les relations sont différentes, vous devrez en changer