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

ing*_*939 2 dynamics-crm-2011

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

我尝试过一个简单的LINQ查询,例如.Aggregate c In service.ContactSet Into Count()(从这些例子,也是这个建议这个建议),但每个人花了很长时间,因为下载的结果XML是整个数据记录集(即使它只是GUID,那仍然是20000 GUID和他们所有的XML漏洞).

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

Anw*_*war 6

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

文件说:

FetchXML支持QueryExpression的所有功能以及 聚合和分组.查询构建为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));
Run Code Online (Sandbox Code Playgroud)

返回的结果将如下所示:

<resultset morerecords="0"'> 
   <result>
      <aliasName>20</aliasName>
   </result>
</resultset>
Run Code Online (Sandbox Code Playgroud)