Можно ли отфильтровать данные по свойству коллекции расширенного объекта? - PullRequest
1 голос
/ 11 февраля 2020

У меня есть сущность, [Part], которая имеет свойство навигации [Representation], а в сущности [Representation] есть свойство [Files], которое является массивом сущностей, мой вопрос: возможно ли отфильтровать Часть, для которой у Presentation.Files есть filetype='pdf' Я пробовал это, но не смог

  Part?$filter=Representation/any(r:r/Files/filetype eq 'pdf')&$expand=representation

$ извлечение метаданных:

<EntityType Name="Part" BaseType="Entity">
  <NavigationProperty Name="Representations" Type="Collection(Representation)"> </NavigationProperty>
</EntityType>
<EntityType Name="Representation"> 
  <Property Name="AdditionalFiles" Type="Collection(RepresentationHyperlink)"> </Property> 
</EntityType>

Примечание: Files - это свойство с типом массива, это , а не навигация свойство.

1 Ответ

0 голосов
/ 11 февраля 2020

В OData v4 будет работать следующее:

...Part?$filter=Representation/Files/any(f:f/filetype eq 'pdf')&$expand=representation

Функция any работает для многих навигационных ссылок, поэтому она должна появляться сразу после нее, а не перед ней.

...