在 OData 协议中定义的查询字符串选项
选项 说明
$expand 指示应在所检索的记录或集合中检索相关记录。
$filter 指定为在集合中返回记录计算结果必须为“true”的表达式或函数。
$orderby 确定使用哪些值对记录集合进行排序。
$select 指定要返回的属性的子集。
$skip 设置在集合中检索记录之前要跳过的记录数。
$top 确定要返回的最大记录数。
$expand
指示应在所检索的记录或集合中检索相关记录。
如果要检索相关记录,请查找定义此关系的实体关系的名称。可能必须查看应用程序中的实体关系信息,才能为 Organization Data Service 正确标识关系或概念架构定义语言 (CDSL)。
例如,若要检索与帐户相关的商机记录,请使用 opportunity_customer_accounts 实体关系。查询 /AccountSet?$expand=opportunity_customer_accounts 将返回商机记录和帐户记录。
如果要限制返回的列,则还必须在查询中包括导航属性的名称。例如,查询 /AccountSet?$select=Name,opportunity_customer_accounts&$expand=opportunity_customer_accounts 只返回帐户名称和展开的商机记录。
Microsoft Dynamics CRM 2011 不支持查询多级别关系属性。例如,此查询(用于检索与帐户有关的商机的所属用户信息)将不起作用:/AccountSet?$expand=opportunity_customer_accounts/opportunity_owning_user.
默认情况下,最多可以定义六个要展开的关系。此查询(展开商机和拥有帐户的系统用户)将起作用:/AccountSet?$select=Name,opportunity_customer_accounts,user_accounts&$expand=opportunity_customer_accounts,user_accounts
$orderby
确定使用哪些值对记录集合进行排序。默认情况下,顺序为升序。使用 desc 使顺序反向或使用 asc 显式设置默认值。
如果正在使用 next 链接检索其他数据集,则不应更改 $orderby 查询选项值,因为这会导致不可预测的结果
$select
指定要返回的属性的子集以及数据列的组织顺序。默认为返回与 $select=* 对应的所有列。
如果使用 $expand 包括相关数据并使用 $select 限制返回的列,则还必须在查询中包括导航属性的名称。例如,以下查询 /AccountSet?$select=Name,opportunity_customer_accounts&$expand=opportunity_customer_accounts 将只返回帐户名称和展开的商机记录
$skip
如果正在使用 next 链接检索其他数据集,则不应更改 $skip 查询选项值,因为这会导致不可预测的结果
$top
确定要返回的最大记录数。
如果正在使用 next 链接检索其他数据集,则不应更改 $top 查询选项值,因为这会导致不可预测的结果
不支持的系统查询选项
Microsoft Dynamics CRM 2011 不支持使用以下系统查询选项:
$inlinecount
$count
$format
$filter
指定为在集合中返回记录计算结果必须为 true 的表达式或函数。
如果正在使用 next 链接检索其他数据集,则不应更改 $filter 查询选项值,因为这会导致不可预测的结果。
筛选系统查询选项的 OData 规格描述了用于创建要在筛选器中计算的表达式的运算符。Microsoft Dynamics CRM 使用所有逻辑运算符和可用函数的子集。Microsoft Dynamics CRM 不支持使用算术运算符。筛选器可以使用用括号指示的分组条件。时间值的比较必须使用以下格式:datetime’<time value>’,例如 datetime'2010-07-15' 或 datetime'2010-07-15T16:19:54Z'。
下表列出 Microsoft Dynamics CRM 支持的运算符
可以使用 $filter 查询选项筛选 EntityReference 属性的值。例如,如果您具有 SystemUser 记录的 ID 值,则可以使用以下筛选器检索分派用户的所有客户记录的列表:
复制代码
/AccountSet?$filter=OwnerId/Id eq (guid'" + SystemUserId + "')
下表列出 Microsoft Dynamics CRM 支持的函数
$orderby
确定使用哪些值对记录集合进行排序。默认情况下,顺序为升序。使用 desc 使顺序反向或使用 asc 显式设置默认值。
如果正在使用 next 链接检索其他数据集,则不应更改 $orderby 查询选项值,因为这会导致不可预测的结果
$select
指定要返回的属性的子集以及数据列的组织顺序。默认为返回与 $select=* 对应的所有列。
如果使用 $expand 包括相关数据并使用 $select 限制返回的列,则还必须在查询中包括导航属性的名称。例如,以下查询 /AccountSet?$select=Name,opportunity_customer_accounts&$expand=opportunity_customer_accounts 将只返回帐户名称和展开的商机记录
$skip
如果正在使用 next 链接检索其他数据集,则不应更改 $skip 查询选项值,因为这会导致不可预测的结果
$top
确定要返回的最大记录数。
如果正在使用 next 链接检索其他数据集,则不应更改 $top 查询选项值,因为这会导致不可预测的结果
不支持的系统查询选项
Microsoft Dynamics CRM 2011 不支持使用以下系统查询选项:
$inlinecount
$count
$format