使用 FetchXML 构建查询
发布日期: 2016年11月
适用于: Dynamics CRM 2015
若要在 Microsoft Dynamics CRM 2015 和 Microsoft Dynamics CRM Online 中执行 FetchXML 查询,必须首先生成 XML 查询字符串。 创建查询字符串后,使用 IOrganizationService.RetrieveMultiple 方法执行查询字符串。 登录用户的特权影响返回的记录集。 将仅返回登录用户对其具有读取访问权限的记录。
FetchXML 查询字符串必须符合 FetchXML 语言的架构定义。 有关详细信息,请参阅FetchXML schema。
您可以通过创建 SavedQuery 记录保存查询,如示例:验证和执行已保存查询中所示。 将 link-entity 节点上的 visible 设置为 false 可隐藏“高级查找”用户界面中的链接实体。 它仍会参与执行查询,且返回相应的结果。
警告
不要在查询中检索所有属性,否则会对性能造成负面影响。 当查询用作更新请求的参数时,尤其如此。 在更新中,如果包括所有属性,则它会设置所有字段值(即使它们没有更改),且触发器通常将更新级联到子记录。
创建查询字符串
在下面的示例中,FetchXML 语句检索所有客户:
<fetch mapping='logical'>
<entity name='account'>
<attribute name='accountid'/>
<attribute name='name'/>
</entity>
</fetch>
在下面的示例中,FetchXML 语句检索负责用户的姓氏不是 Cannon 的所有帐户:
<fetch mapping='logical'>
<entity name='account'>
<attribute name='accountid'/>
<attribute name='name'/>
<link-entity name='systemuser' to='owninguser'>
<filter type='and'>
<condition attribute='lastname' operator='ne' value='Cannon' />
</filter>
</link-entity>
</entity>
</fetch>
在以下示例中,FetchXML 语句使用计数设置从查询返回的最大记录数。 在此方案中,从查询返回前 3 个帐户。
<fetch mapping='logical' count='3'> <entity name='account'> <attribute name='name' alias='name'/> </entity></fetch>
执行查询
下面的代码演示如何执行 FetchXML 查询:
// Retrieve all accounts owned by the user with read access rights to the accounts and
// where the last name of the user is not Cannon.
string fetch2 = @"
<fetch mapping='logical'>
<entity name='account'>
<attribute name='accountid'/>
<attribute name='name'/>
<link-entity name='systemuser' to='owninguser'>
<filter type='and'>
<condition attribute='lastname' operator='ne' value='Cannon' />
</filter>
</link-entity>
</entity>
</fetch> ";
EntityCollection result = _serviceProxy.RetrieveMultiple(new FetchExpression(fetch2));foreach (var c in result.Entities) { System.Console.WriteLine(c.Attributes["name"]); }
查询结果
使用 RetrieveMultiple 方法执行 FetchXML 查询时,返回值是包含查询结果的 EntityCollection。 然后可以循环访问实体集合。 上一示例使用 foreach 循环来循环访问 FetchXML 查询的结果集合。
另请参阅
使用 FetchXML 构建查询
使用 FetchXML 聚合
FetchXML schema
© 2017 Microsoft。 保留所有权利。 版权