OData-фильтр по вложенному свойству

кто-нибудь знает, как выразить фильтр OData $против вложенного свойства?

для ex. У меня есть следующая запись Atom,

<entry>
...
 <m:properties>
...
  <d:RegardingObjectId m:type="Microsoft.Crm.Sdk.Data.Services.EntityReference">
  <d:Id m:type="Edm.Guid">3f3712fd-fc49-e211-8eb8-000c296272c8</d:Id> 
  <d:LogicalName>new_sportsleague</d:LogicalName> 
  <d:Name>Boca</d:Name> 
  </d:RegardingObjectId>

Я хочу отфильтровать те записи, которые имеют RegardingObjectId / LogicalName eq 'new_sportsleague'.

пробовал с 'RegardingObjectId / LogicalName' и ' RegardingObjectId.LogicalName' не повезло.

2 ответов


'RegardingObjectId/LogicalName' будет правильным синтаксисом.

например:

http://services.odata.org/v3/OData/OData.svc/Suppliers

возвращает два результата, тогда как

http://services.odata.org/v3/OData/OData.svc/Suppliers?$filter=Адрес / улица eq 'NE 228th'

возвращает только одну.

Я не вижу места в спецификации OData, которое явно указывает, является ли фильтрация с использованием свойств Комплекса значение является законным или нет, но, похоже, службы данных WCF поддерживают его. Возможно, что другие реализации OData этого не делают.


используйте следующий пример API odata для доступа к вложенным свойствам с данными фильтра

http://192.168.50.152:50086/odata/StationOperationLogs/?$expand=ProductionStation,ProductionStation/ProductionUnit&$filter=ProductionStation/ProductionUnit/Id eq 2