web-dev-qa-db-ja.com

OData-ネストされたプロパティでフィルタリング

ネストされたプロパティに対してOData $ filterを表現する方法を知っている人はいますか?

例私は次の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>

AboutObjectId/LogicalName eq'new_sportsleague 'を持つエントリをフィルタリングしたいと思います。

'RegardingObjectId/LogicalName'と 'RegardingObjectId.LogicalName'を試してみましたが運がありませんでした。

14
Ariel

'RegardingObjectId/LogicalName'が正しい構文になります。

例えば:

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

2つの結果を返しますが、

http://services.odata.org/v3/OData/OData.svc/Suppliers ?$ filter = Address/Street eq'NE 228th '

1つだけを返します。

複素数値のプロパティを使用したフィルタリングが合法かどうかを明示的に示すOData仕様の場所はありませんが、WCF DataServicesはそれをサポートしているようです。他のOData実装はそうではない可能性があります。

19
Jen S

次のodataAPIの例を使用して、フィルターデータを使用してネストされたプロパティにアクセスします

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