odata-объединение $expand и $select
в odata v4.0 Есть ли возможность объединения $expand и $select вместе?
У меня есть сценарий, в котором я пытаюсь получить определенные столбцы в productItemChoices и деталь. Ниже запрос даст вам все столбцы в productItemChoices. Мне нужна только одна колонка в productItemChoices
odata/Products(08f80b45-68a9-4a9f-a516-556e69e6bd58)?$expand=productItemChoices($expand=item($select=name))
2 ответов
после того, как прошло много времени, я, наконец, получил ответ. Мы можем гнездиться select
внутри expand
используя ;
в качестве разделителя, что-то вроде
odata/Products(8)?$expand=choices($select=col1,col2;$expand=item($select=name))
это описано в OData версии 4 $expand
документация. В документации также перечислены другие полезные примеры, такие как
Categories?$expand=Products($filter=DiscontinuedDate eq null)
Categories?$expand=Products/$count($search=blue)
в select вы можете использовать сущность / атрибут для выбора определенных атрибутов развернутых сущностей:
$select=productItemChoices/columnyouwant
Я не уверен в отношениях сущностей в вашем запросе. При глубоком расширении я использовал следующий синтаксис (без скобок) - в следующем, Я предполагаю, что продукты относятся к productItemChoices и productItemChoices имеют item
$expand=productItemChoices, productItemChoices/item
затем, чтобы выбрать
$select=productItemChoices/productItemChoicesGuid, productItemChoices/item/name
очевидно, что если отношения разные, вам нужно будет изменить его некоторые