c# - 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);
只是想知道是否有比这个更好的解决方案?
解决方案
您可以尝试使用In
.
Web API 有等价
ContainValues
和DoesNotContainValues
查询功能。可与此类属性一起使用的其他现有条件运算符包括:
Equal
、NotEqual
、NotNull
、Null
和。In
NotIn
推荐阅读
- symfony - empty_data 不适用于复合形式,或者实体没有被实例化(ArgumentCountError:函数的参数太少)
- reactjs - react: setstate 的可重用事件处理程序
- javascript - Vue DOM 更新不会在第一次点击中发生,在后续点击中有效
- python - 如何修复使用 pymssql 插入 sql DB 的错误
- angular - 我没有从 'fromEvent(window, 'scroll')'l 得到任何事件
- c# - SaveFileDialog 找不到桌面文件夹路径
- sql - 如何检查表中正在使用的空间,包括幽灵记录
- ruby-on-rails - 未初始化的常量 DeviseController
- c++ - T*&返回类型到底是什么
- vb.net - TabPages 上的多个 DataGridView。VB.net