8

我正在使用$expand来增强 OData SharePoint REST 查询,并且我想$filter使用扩展实体的属性之一。但是,我找不到任何关于正确语法的文档。我发现了一些可能建议使用实体/属性的地方,但在尝试之后,我失败了:

询问:

_vti_bin/listdata.svc/Posts?$expand=Category&$filter=substring(\"Featured Article\",Category/Title) eq false and year(Published) lt " +year+1+ " and month(Published) lt " +month+1+ " or day(Published) lt " +day+1+ " and ApprovalStatus eq '0'&$select=Title,Published,Category,ApprovalStatus&$orderby=Published desc"

返回:

syntax error '\"' at position 10.

当 Category 是高级别并且它的 Title 属性是子级别时,我将如何根据 Category 实体的 Title 进行过滤?

4

2 回答 2

12

导航实体上的过滤器独立于展开。

于 2015-10-19T15:38:29.597 回答
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

在过滤器部分,您可以使用大量示例作为指导。

于 2013-08-21T00:39:58.740 回答