Dynamics crm 2011 CRM 2011 sdk-获取实体计数而不检索数据行

Dynamics crm 2011 CRM 2011 sdk-获取实体计数而不检索数据行,dynamics-crm-2011,Dynamics Crm 2011,我正在使用CRM 2011 SDK处理远程CRM 2011服务。我需要检索联系人的总数,大约超过20000 我尝试了一个简单的LINQ查询,例如,Aggregate c In service.ContactSet Into Count()(from,也和),但每一个查询都花了很长时间,因为下载的结果XML是一个完整的数据记录集(即使它只是GUID,也仍然是20000个GUID和它们所有的XML绒毛) 我似乎找不到如何简单地查询CRM 2011,因为它只返回一个数字——实体中记录的总数。可以说是“

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

我尝试了一个简单的LINQ查询,例如,
Aggregate c In service.ContactSet Into Count()
(from,也和),但每一个查询都花了很长时间,因为下载的结果XML是一个完整的数据记录集(即使它只是GUID,也仍然是20000个GUID和它们所有的XML绒毛)


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

不幸的是,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>
string fetchQuery=@”
";
EntityCollection值=_serviceProxy.Execute(新的FetchExpression(fetchQuery));
返回的结果如下所示:

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>

非常感谢!既然我知道了“fetchxml”这个词,谷歌上就打开了一个全新的世界