2013-05-15 10 views
6

weiß jemand, wie man einen OData $ Filter gegen eine verschachtelte Eigenschaft ausdrückt?OData - Filter nach verschachtelter Eigenschaft

für ex. Ich habe folgende Atom-Eintrag,

<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> 

ich für diese Einträge filtern möchten, die RegardingObjectId/Logischer_Name eq ‚new_sportsleague‘ haben.

Versucht mit "In Bezug aufObjectId/LogicalName" und "In Bezug aufObjectId.LogicalName" ohne Glück.

Antwort

10

'RegardingObjectId/LogicalName' wäre die richtige Syntax.

Zum Beispiel:

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

kehrt zwei Ergebnisse, während

http://services.odata.org/v3/OData/OData.svc/Suppliers $ filter = Adresse/Straße eq 'NE 228.'

kehrt nur ein?.

Ich sehe keinen Platz in der OData-Spezifikation, der explizit angibt, ob die Filterung mithilfe von Eigenschaften eines komplexen Werts zulässig ist oder nicht, aber WCF Data Services scheint dies zu unterstützen. Es könnte sein, dass andere OData-Implementierungen dies nicht tun.

+0

Sie haben recht Jen ... Es scheint, dass Dynamics CRM 2011 nicht solche Abfragen nicht unterstützt. Wenn ich gegen einen komplexen Typ abfrage, bekomme ich $ exception {"Verweis auf Eigenschaft LogicalName bei komplexem Typ EntityReference wird nicht unterstützt"} System.Exception {Microsoft.Crm.CrmNotSupportedException} :-( – Ariel

0

Verwenden folgenden OData API Beispiel um verschachtelte Objekte mit Datenfilter

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