2014-05-13 46 views
0

元素我已經創建了在OData的協議V1公開數據的OData服務器(最大V2)的OData - 在收集

<edmx:DataServices xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:DataServiceVersion="1.0" m:MaxDataServiceVersion="2.0"> 

是否有可能通過尋找特定的值來執行的OData查詢查詢一個集合? 我這種情況爲例:

... 
<entry> 
    ... 
    <d:Id>1</Id> 
    <d:Attributes m:type="Collection(Edm.String)"> 
    <m:item>A</m:item> 
    <m:item>B</m:item> 
    </d:Attributes> 
</entry> 
<entry> 
    ... 
    <d:Id>2</Id> 
    <d:Attributes m:type="Collection(Edm.String)"> 
    <m:item>A</m:item> 
    <m:item>C</m:item> 
    </d:Attributes> 
</entry> 
<entry> 
    ... 
    <d:Id>3</Id> 
    <d:Attributes m:type="Collection(Edm.String)"> 
    <m:item>E</m:item> 
    <m:item>D</m:item> 
    <m:item>F</m:item> 
    <m:item>H</m:item> 
    </d:Attributes> 
</entry> 
... 

而且我想顯示,例如,僅包含項目<m:item>A</m:item>條目。我如何構建查詢? 類似於...?$filter=substringof(A,Attributes)

謝謝!

回答

2

使用$過濾器=屬性/任何(d:d EQ 'A')

例如:

http://odatasampleservices.azurewebsites.net/Experimental/DefaultService/People?$filter=Numbers/any(d:d eq '012') 

相關協議:Here

+0

對不起,我沒有指定我odata服務器不會暴露odata v4! 有沒有辦法做類似的事情,但與odata v1-3? (更好的v1-2) – Marco

+1

@Marco任何應該從V3的支持。對於V1-V2 ...我不知道。也許你可以定義一個客戶功能來滿足要求? – Maya

+0

是的,我明白了,但我正在使用JayData作爲服務器,而對於V3,並非所有功能都可用。一個自定義函數應該可以解決這個問題,但我不知道如何去做。 – Marco