Bri*_*sch 4 ajax rest sharepoint-2010 odata
我$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"
Run Code Online (Sandbox Code Playgroud)
哪个返回:
syntax error '\"' at position 10.
Run Code Online (Sandbox Code Playgroud)
当Category为高级别且Title属性为子级别时,如何根据Category实体的Title进行过滤?
导航实体上的过滤器与扩展无关。
如果导航属性不是集合(1:1关系)
您可以按类型/属性进行过滤,这是一个示例,用于搜索具有某些ID的客户的所有订单:http : //services.odata.org/V2/Northwind/Northwind.svc/Orders?$ filter=Customer / CustomerID%20eq%20%27ANATR%27
如果导航属性是集合(1:N关系):
OData版本2:当扩展实体是实体集合时,不能同时搜索扩展实体和目标实体。例如,您不能查询 http://services.odata.org/V4/Northwind/Northwind.svc/Customers?$expand=Orders&$filter=Orders/ShipCity%20eq%20%27Berlin%27
解决方法可能是翻转查询(选择订单而不是客户-每个订单都有1个客户):http ://services.odata.org/V2/Northwind/Northwind.svc/Orders?$filter=ShipCity% 20eq%20%27Berlin%27&$ expand = Customer, 但是您可以获得重复的客户(您的实际目标实体)。
OData版本3您可能考虑使用自定义查询选项(http://www.odata.org/documentation/odata-version-3-0/url-conventions/)。
OData版本4:您可以使用以下任何结构进行过滤:http : //services.odata.org/V4/Northwind/Northwind.svc/Customers?$ filter = Country%20eq%20%27Germany%27%20and%20Orders / any(o:o / ShipCity%20eq%20%27Berlin%27)
看起来问题是斜杠转义的双引号,并且您正在使用而substring不是substringof.
如果使用单引号代替,它会起作用吗?或者您想字面匹配双引号字符吗?(如果是这种情况,我认为您可以将双引号保留在单引号内)
_vti_bin/listdata.svc/Posts?$expand=Category&$filter=substringof('Featured Article',Category/Title) eq false
Run Code Online (Sandbox Code Playgroud)
或者
_vti_bin/listdata.svc/Posts?$expand=Category&$filter=substringof('"Featured Article"',Category/Title) eq false
Run Code Online (Sandbox Code Playgroud)
作为公共服务的示例,请看一下以下查询:
http://services.odata.org/Northwind/Northwind.svc/Products?$filter=substringof('Bev', Category/CategoryName) eq true
Run Code Online (Sandbox Code Playgroud)
至于 OData 查询语法的文档,我建议查看此页面:http ://www.odata.org/documentation/odata-v3-documentation/url-conventions
在过滤器部分中,有大量示例可以用作指导。
| 归档时间: |
|
| 查看次数: |
7205 次 |
| 最近记录: |