CRM 2011 sdk - 在不检索数据行的情况下获取实体数量

时间:2012-06-21 18:22:33

标签: dynamics-crm-2011

我正在使用CRM 2011 SDK来处理远程CRM 2011服务。我需要检索联系人总数,超过20000。

我尝试了一个简单的LINQ查询,例如。 Aggregate c In service.ContactSet Into Count()(来自these examples,还有this suggestionthis suggestion),但每个人都年龄,因为下载的结果XML是整个记录集数据(即使它只是GUID,仍然是20000 GUID及其所有XML漏洞)。

我似乎无法找到如何简单地查询CRM 2011,因为它返回单个数字 - 实体中记录的总数。可以说是一个“标量查询”。这是怎么做到的?

1 个答案:

答案 0 :(得分:6)

不幸的是,LINQ查询不支持聚合和分组。

文档说:

  

FetchXML支持QueryExpression plus的所有功能   聚合和分组。查询构建为XML语句。

因此,您唯一的选择是使用FetchXML,如下所示:

string fetchQuery = @"<fetch distinct='false' mapping='logical' aggregate='true'> 
   <entity name='entity name'> 
      <attribute name='attribute name' aggregate='count' alias='aliasName'/> 
   </entity> 
</fetch>";

EntityCollection value = _serviceProxy.Execute(new FetchExpression(fetchQuery));

返回的结果如下:

<resultset morerecords="0"'> 
   <result>
      <aliasName>20</aliasName>
   </result>
</resultset>