使用 QueryExpression 构建查询

 

发布日期: 2017年1月

适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online

在Microsoft Dynamics 365(在线或本地)中,您可使用QueryExpression类以编程方式构件包含数据筛选器的查询和定义数据库搜索范围搜索条件。 查询表达式用于单一对象的搜索。 例如,您可以创建一个搜索,以返回与特定搜索条件匹配的所有帐户。QueryBase 类是查询表达式的基类。 有两个派生类:QueryExpressionQueryByAttributeQueryExpression 类支持复杂查询。QueryByAttribute 类是简单的搜索方式,用于搜索属性与指定值匹配的实体。

查询表达式用于检索多个记录的方法(例如 IOrganizationService.RetrieveMultiple 方法)、对查询表达式指定的结果集执行操作的消息(例如 BulkDeleteRequest),以及特定记录的 ID 未知的情况。

此外,组织实体上还有一个新属性 Organization.QuickFindRecordLimitEnabled。 当此 Boolean 属性为 true 时,会对快速查找查询施加限制。 如果用户在快速查找中提供选择性不够的搜索条件,则系统会检测此情况并停止搜索。 这将支持更快的快速查找窗体并可实现较大的性能差异。

警告

不要在查询中检索所有属性,否则会对性能造成负面影响。 当查询用作更新请求的参数时,尤其如此。 在更新中,如果包括所有属性,则它会设置所有字段值(即使它们没有更改),且触发器通常将更新级联到子记录。

还有两种其他方式可以创建从 Microsoft Dynamics 365 检索记录的查询。FetchXML(专有 Microsoft Dynamics 365 查询语言)可用于通过使用基于 XML 的查询来执行一些查询。 有关详细信息,请参阅使用 FetchXML 构建查询。 还可以使用 .NET 语言集成查询 (LINQ) 编写查询。详细信息:使用 LINQ(.NET 语言集成查询)构建查询

若要保存查询,您可以使用 QueryExpressionToFetchXmlRequest 将它转换为 FetchXML,使用 userquery 实体将它另存为已保存视图。

本节内容

使用 QueryByAttribute 类

使用 QueryExpression 类

使用 ColumnSet 类

使用 ConditionExpression 类

使用 FilterExpression 类

使用在 QueryExpression 的左外部联接来查询“不在”记录。

测试 Null 值

使用查询表达式对大型结果集分页

示例:使用一对多关系进行检索

示例:使用 QueryByAttribute 类来进行多个检索

示例:使用 QueryExpression 类来进行多个检索

示例:将 QueryExpression 与分页 Cookie 结合使用

引用

QueryBase

QueryExpression

QueryByAttribute

RetrieveMultiple

ColumnSet

ConditionExpression

FilterExpression

PagingCookie

另请参阅

示例:在Fetch和QueryExpression之间转换查询

Microsoft Dynamics 365

© 2017 Microsoft。 保留所有权利。 版权