4

我正在使用 Microsoft CRM SDK 来检索实体。我正在写QueryExpressionFilterExpression

如何编写一个考虑两个属性的条件?我想检索属性“导出日期”小于“修改时间”的实体。(即自上次导出以来已修改的所有内容)。

QueryExpression query = new QueryExpression();
FilterExpression filter = new FilterExpression();
filter.FilterOperator = LogicalOperator.Or;

ConditionExpression condition = new ConditionExpression();
// ...
//how to write this condition? 

filter.AddCondition(condition);
4

3 回答 3

6

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

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

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

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

于 2015-01-21T13:11:39.700 回答
2

在最新版本(2020 年 7 月)中,查询表达式 (SDK)、fetchxml 和 web api 中提供了比较同一实体的两个属性的功能。阅读更多

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

new ConditionExpression("firstname", ConditionOperator.Equal, true, "lastname");
于 2020-09-10T14:57:40.043 回答
1

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

于 2015-01-21T11:45:29.537 回答