2010-12-22 69 views
22

如果我的模型中有兩個實體,「人員」和「地址」,以及特定人員有零個或多個地址,可以通過AddressList導航屬性訪問,我可以寫一個OData查詢回答以下問題:

「哪些人的姓氏以Smith結尾,並且至少有一個地址?」

在我看來,我只能在這裏做一個謂詞,例如,

http://localhost:55100/DemographicsDataService.svc/People?$ FILTER =的endsWith(姓氏,「史密斯」)

(我還沒有說服我甚至可以寫一個$過濾器處理第二個謂語..在這種情況下,假設我試圖回答這個問題,「姓氏以史密斯名字結尾,名字以瑪麗開頭」)

回答

44

您可以在$ filter中明確地組合謂詞。例如:

/People?$filter=endswith(LastName,'Smith') and startswith(FirstName,'Mary') 

周邊支持運營商等細節請參閱以下網頁:http://www.odata.org/documentation/odata-version-2-0/uri-conventions#FilterSystemQueryOption 目前的OData沒有一種方式來表達的問題「這至少有一個地址的人」。 根據您的數據,下載所有滿足第一條標準的人員並在客戶端確定具有地址的人員可能是可行的。

+2

鏈接已損壞。 – AustinT 2014-06-17 01:40:35