适用于All和Any的Dynamics CRM REST oData端点支持

时间:2014-10-01 04:50:46

标签: rest dynamics-crm-2011 odata dynamics-crm dynamics-crm-2013

只是想知道当前的REST端点(2013)是否支持基于子实体的Any或All过滤:

http://localhost/xrmservices/2011/OrganizationData.svc/AccountSet?$select=Name&$expand=lead_parent_account&$filter=lead_parent_account/any(x:x.City eq '')

回来: 类型'System.Collections.Generic.IEnumerable`1 [[Microsoft.Xrm.Sdk.Entity,Microsoft.Xrm.Sdk,Version = 6.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35]]'中不存在属性'any'在第20位。

1 个答案:

答案 0 :(得分:3)

OData端点仅返回实体,您无法执行布尔查询,例如IEnumerable<T>.Any() / .All() 1

所有内容都需要从数据开始:类似于您的查询以获取相关实体可能如下所示:

/AccountSet?$select=Name&$expand=lead_parent_account&$filter=lead_parent_account/City eq ''

如果您获得非空的结果集,则等效的.Any()true

检查.All()是令人讨厌的:我能想到的最接近的方法是检查查询是否返回了AccountSet的所有记录(如果你有数千条记录需要一段时间,还要记得结果的上限为每个查询5000个上限,如果有更多,则上传。

1 :当然,如果在代码中执行QueryExpression,结果可以随意LINQ-ed,因为您不再依赖于有限的LINQtoCRM查询提供程序,但它在这里不太相关)