2014-10-16 110 views
1

我想根據名爲「listcontact_association」的項目關係的一個方面來過濾集合,它表示聯繫人和列表之間的N:N關係。基於關係屬性的odata過濾

我可以通過獲取檢索一整套確定:

/ContactSet?$select=listcontact_association,FirstName,LastName,EMailAddress1&$expand=listcontact_association 

這給了我:

enter image description here

但我想有是隻能夠得到那些聯繫人屬於基於guid的特定列表:

ContactSet?$select=listcontact_association,FirstName,LastName,EMailAddress1&$expand=listcontact_association,FirstName,LastName,EMailAddress1&$filter=listcontact_association/ListId %20eq%20(guid%2787F2A0AF-A142-E411-93FA-000C29482C88%27) 

這告訴我:

No property 'ListId' exists in type 'System.Collections.Generic.IEnumerable`1[[Microsoft.Xrm.Sdk.Entity, Microsoft.Xrm.Sdk, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]' at position 24. 

這我覺得有道理,因爲可以有許多列表關聯。

我是一個odata新手,無法弄清楚如何過濾我的數據,所以任何幫助表示讚賞。

回答

2

這是因爲listcontact_association是一個集合,在這種情況下,您可以使用根據您的需要LAMDA表達式(只列出了這裏的篩選子句):任何listid符合條件

過濾器。

$filter=listcontact_association/any(a:a/ListId%20eq%20(guid%2787F2A0AF-A142-E411-93FA-000C29482C88%27)) 

濾波器由所有listid匹配條件

$filter=listcontact_association/all(a:a/ListId%20eq%20(guid%2787F2A0AF-A142-E411-93FA-000C29482C88%27)) 
相關問題