首页 > 解决方案 > CRM Online RetrieveMultiple 与 OptionSetValueCollection 条件

问题描述

我正在尝试从多选项集选择列表中检索包含一些选项集值的记录。

这一行使我的代码失败:

int[] values = GetValues();
query.Criteria.AddCondition(new ConditionExpression(fieldName, 
ConditionOperator.ContainValues, values);

当我用逗号分隔符输入值时,代码有效:

query.Criteria.AddCondition(new ConditionExpression(fieldName, 
ConditionOperator.ContainValues, 1,2,3);

唯一的问题是这些值是动态的,所以我不能这样做。到目前为止,我发现克服它的唯一方法是:

FilterExpression filter = new FilterExpression(LogicalOperator.Or);
foreach (int value in values)
{
    filter.AddCondition(new ConditionExpression(fieldName, 
        ConditionOperator.ContainValues, value));
}
query.Criteria.AddFilter(filter);

只是想知道是否有比这个更好的解决方案?

标签: c#dynamics-crmcrmquery-expressions

解决方案


您可以尝试使用In.

从多选选项列表中查询数据

Web API 有等价ContainValuesDoesNotContainValues查询功能。

可与此类属性一起使用的其他现有条件运算符包括: EqualNotEqualNotNullNull和。InNotIn


推荐阅读