CRM ConditionExpression 比较两个属性
CRM ConditionExpression to compare two attributes
我正在使用 Microsoft CRM SDK 检索实体。我正在用 FilterExpression
写 QueryExpression
。
如何写一个考虑两个属性的条件?我想检索属性 "Export Date" 小于 "Modified On" 的实体。 (即自上次导出后修改的所有内容)。
QueryExpression query = new QueryExpression();
FilterExpression filter = new FilterExpression();
filter.FilterOperator = LogicalOperator.Or;
ConditionExpression condition = new ConditionExpression();
// ...
//how to write this condition?
filter.AddCondition(condition);
不幸的是,这是不可能的。唯一的方法是检索数据并对检索到的数据构建查询以获得最终结果。
查询 CRM 时,以下限制适用:
- 条件的左侧必须是一个 CRM 属性
- 条件的右边必须是一个常数
换句话说,不能在单个查询中直接比较属性。
根据经验,如果您的 QueryExpression
可以构建为高级查找,那么您没问题,否则您很可能需要中间查询。
在最新版本(2020 年 7 月)中,查询表达式 (SDK)、fetchxml 和 web api 中提供了比较同一实体的两个属性的功能。 Read more
This code creates a condition to return only records where the first and last names are the same
new ConditionExpression("firstname", ConditionOperator.Equal, true, "lastname");
我正在使用 Microsoft CRM SDK 检索实体。我正在用 FilterExpression
写 QueryExpression
。
如何写一个考虑两个属性的条件?我想检索属性 "Export Date" 小于 "Modified On" 的实体。 (即自上次导出后修改的所有内容)。
QueryExpression query = new QueryExpression();
FilterExpression filter = new FilterExpression();
filter.FilterOperator = LogicalOperator.Or;
ConditionExpression condition = new ConditionExpression();
// ...
//how to write this condition?
filter.AddCondition(condition);
不幸的是,这是不可能的。唯一的方法是检索数据并对检索到的数据构建查询以获得最终结果。
查询 CRM 时,以下限制适用:
- 条件的左侧必须是一个 CRM 属性
- 条件的右边必须是一个常数
换句话说,不能在单个查询中直接比较属性。
根据经验,如果您的 QueryExpression
可以构建为高级查找,那么您没问题,否则您很可能需要中间查询。
在最新版本(2020 年 7 月)中,查询表达式 (SDK)、fetchxml 和 web api 中提供了比较同一实体的两个属性的功能。 Read more
This code creates a condition to return only records where the first and last names are the same
new ConditionExpression("firstname", ConditionOperator.Equal, true, "lastname");