CRM ConditionExpression比较两个属性

时间:2015-01-21 11:23:37

标签: dynamics-crm

我正在使用Microsoft CRM SDK来检索实体。我正在用QueryExpression撰写FilterExpression

如何编写一个考虑两个属性的条件?我想检索实体,其属性“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);

3 个答案:

答案 0 :(得分:6)

查询CRM时,以下限制适用:

  • 条件的左侧必须是CRM属性
  • 条件的右侧必须为常数

换句话说,无法在单个查询中直接比较属性。

根据经验,如果您的QueryExpression可以构建为高级查找,那么您就可以了,否则您很可能需要中间查询。

答案 1 :(得分:1)

不幸的是,这是不可能的。唯一的方法是检索数据并构建查询以获取最终结果。

答案 2 :(得分:1)

在最新版本(2020年7月)中,用于比较同一实体的两个属性的功能在查询表达式(SDK),fetchxml和Web api中可用。 Read more

此代码创建了一个条件,以仅返回名字和姓氏相同的记录

new ConditionExpression("firstname", ConditionOperator.Equal, true, "lastname");