我创建了一个暴露OData协议V1(最大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)
。
谢谢!
答案 0 :(得分:3)
使用$ filter = Attributes / any(d:d eq'A')
例如:
http://odatasampleservices.azurewebsites.net/Experimental/DefaultService/People?$filter=Numbers/any(d:d eq '012')
相关协议:Here