2013-05-15 43 views
6

沒有人知道如何表達一個嵌套屬性的OData $過濾器嗎?OData - 通過嵌套屬性過濾

for 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'沒有運氣。

回答

10

'RegardingObjectId/LogicalName'將是正確的語法。

例如:

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

返回兩個結果,而

http://services.odata.org/v3/OData/OData.svc/Suppliers $過濾=地址/街EQ 'NE 228次'

回報只是一個?

我在OData規範中沒有看到明確規定是否使用複雜值的屬性進行篩選是否合法,但似乎WCF數據服務支持它。可能是其他OData實現不這樣做。

+0

你是對的...仁看來,Dynamics CRM中2011不支持此類查詢。在查詢複雜類型時,我得到了$ exception {「不支持在複雜類型EntityReference上引用屬性LogicalName」} System.Exception {Microsoft.Crm.CrmNotSupportedException} :-( – Ariel

0

使用以下的OData API例如用過濾數據訪問嵌套屬性

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