zoukankan      html  css  js  c++  java
  • QueryExpression查询中的OR写法

    CRM当中的查询一般会采用两种方式,QueryExpression查询和FetchXML查询。一般用的比较多的是QueryExpression,但是由于QueryExpression种or写法不太熟练,所以当碰到这种有or逻辑查询的时候,我都会直接去系统高级查询中构建一个查询,然后将FetchXML下载下来,copy到代码中,这样不容易出错且简单。

    但是QueryExpression的OR查询还是要掌握一下:
    查询逻辑:(客户类型为10并且客户行业为10)或者(客户类型不等于10)

    QueryExpression query = new QueryExpression("Account");
    query.ColumnSet = new ColumnSet(true);
    query.Criteria.AddCondition("statecode", ConditionOperator.Equal, 0);
    FilterExpression FilterOr = new FilterExpression
    {
       FilterOperator = LogicalOperator.Or,
       Filters =
       {
          new FilterExpression
          {
             FilterOperator = LogicalOperator.And,
             Conditions =
             {
                new ConditionExpression("new_accounttype",ConditionOperator.Equal,10),
                new ConditionExpression("new_accountindustry",ConditionOperator.Equal,10)
             }
          },
          new FilterExpression
          {
            FilterOperator=LogicalOperator.And,
            Conditions =
            {
               new ConditionExpression("new_accounttype",ConditionOperator.NotEqual,10),
            }
          }
      }
    };
    query.Criteria.Filters.Add(FilterOr);
    
    EntityCollection result = AdminService.RetrieveMultiple(query);
    

    通过上述代码可以看出,当涉及到OR查询时一般会采用FilterExpression来完成。

    备注:当有多个OR查询的时候,就构造多个FilterExpression,然后在最后的add时会有一些差异

    query.Criteria.Filters.AddRange(new List<FilterExpression>() { FilterAnd, FilterOr, FilterOrNew });
    
  • 相关阅读:
    推荐系统实践
    python实现itemCF and userCF
    Mahout分步式程序开发 基于物品的协同过滤ItemCF
    用Maven构建单机Mahout项目
    Apache Mahout:适合所有人的可扩展机器学习框架
    mahout0.7 示例运行纪实
    win7基于mahout推荐之用户相似度计算
    cygwin
    Mahout初体验
    Android慎用layout嵌套, 尽量控制在5层下面java.lang.StackOverflowError
  • 原文地址:https://www.cnblogs.com/cndota2/p/11889123.html
Copyright © 2011-2022 走看看