2013-08-20 83 views
3

我正在使用$expand來增強OData SharePoint REST查詢,並且我想要在擴展實體的其中一個屬性上使用$filter。但是,我無法找到關於此正確語法的任何文檔。我發現了幾個點,可能暗示使用實體/屬性,而是試圖在此之後,我會失敗:

查詢:

將返回:

syntax error '\"' at position 10. 

我會怎樣基於類別標題的實體進行篩選,當類別是高級別時,它的Title屬性是子級別?

回答

2

看起來問題是斜線轉義的雙引號,而您使用的是substring而不是substringof

如果您使用單引號而不工作?或者你是否想要從字面上匹配雙引號字符? (如果是這樣的話,我想你可以離開了單引號內轉義雙引號)

_vti_bin/listdata.svc/Posts?$expand=Category&$filter=substringof('Featured Article',Category/Title) eq false 

_vti_bin/listdata.svc/Posts?$expand=Category&$filter=substringof('"Featured Article"',Category/Title) eq false 

作爲例如在公共服務,來看看這個查詢:

http://services.odata.org/Northwind/Northwind.svc/Products?$filter=substringof('Bev', Category/CategoryName) eq true 

至於對OData的查詢語法的文檔,我建議採取看看這個頁面:http://www.odata.org/documentation/odata-v3-documentation/url-conventions

在過濾器部分中有相當多的示例可用於指導。

+0

對不起......我應該提到我在SharePoint 2010 ...它使用的OData V2。 –

+0

我不認爲這個東西應該在v2和v3之間有所不同。如果你看看這裏的v2文檔(http://www.odata.org/documentation/odata-v2-documentation/uri-conventions/#45_Filter_System_Query_Option_filter),它仍然說使用'substringof'而不是'substring' 。您發佈的網址有什麼錯誤? –

+0

很高興你問! 'System.Collections.Generic.IEnumerable'1 [[Microsoft.SharePoint.Linq.DataServiceEntity,Microsoft.SharePoint.Linq,Version = 14.0.0.0,Culture = neutral,PublicKeyToken = 71e9bce111e9429c]類型中不存在屬性'標題' ]'在第40位。「 '。但是,當我取出針對Category Entity的過濾器時,返回的json對象中確實有一個名爲'Title'的第一級屬性。 –

3

導航實體上的過濾器獨立於展開。