2013-06-06 26 views
2

我在建模OData服務時遇到了一些問題。我的要求是,我想通過單個值和/或範圍列表來查詢實體集。 示例:將實體集中的所有實體提供給ID爲3,6,8,14和20之間或35和77之間的實體集。OData:嵌入表/實體集的查詢?

這怎麼可能被建模? 我想到一個函數導入,但我不確定一個實體集(=值的列表/範圍)可以用作參數!?

在此先感謝您的幫助!

回答

0

你應該能夠OData的內置的過濾機制,$filter查詢字符串參數來做到這一點。

例如,請求URI會是這個樣子:

http://.../MyService.svc/EntitySet?$filter=ID eq 3 or ID eq 6 or ID eq 8 or (ID ge 14 and ID le 20) or (ID ge 35 and ID le 77)

+0

簡單而有效的;-) 謝謝! 一個後續問題:$ filter是否也可用於函數導入或僅用於實體集? – Daniel

+0

還有一個問題:我想要一個查詢來包含ID在1到40之間的所有實體,包括ID> = 60,排除ID 17並排除99和105之間的ID。 – Daniel

+0

神祕解決:$ filter =((ID ge 1和ID le 40)或ID ge 60)和ID ne 17而不是(ID ge 99和ID le 105) – Daniel