Filter 具有多个联接的Dynamics CRM查询表达式,添加筛选器或条件创建不返回结果

Filter 具有多个联接的Dynamics CRM查询表达式,添加筛选器或条件创建不返回结果,filter,dynamics-crm-2013,query-expressions,Filter,Dynamics Crm 2013,Query Expressions,//下面的代码产生了问题,如果我删除它,它会工作,我会 结果。但我需要添加两个过滤器 如果我用custFilter或childFilter删除所有条件,我会得到结果,但当我保留这两个条件时,它会返回任何结果(无错误)。下面的调整解决了我的问题 custFilter.AddCondition("name", ConditionOperator.Equal, SearchText); custFilter.AddCondition("d

//下面的代码产生了问题,如果我删除它,它会工作,我会 结果。但我需要添加两个过滤器


如果我用custFilter或childFilter删除所有条件,我会得到结果,但当我保留这两个条件时,它会返回任何结果(无错误)。

下面的调整解决了我的问题

                custFilter.AddCondition("name", ConditionOperator.Equal, SearchText);
                custFilter.AddCondition("den_firstname", ConditionOperator.Equal, SearchText);
                //custFilter.AddCondition("den_lastname", ConditionOperator.Equal, SearchText);
                custFilter.AddCondition("emailaddress1", ConditionOperator.Equal, SearchText);
                custFilter.AddCondition("telephone1", ConditionOperator.Equal, SearchText);
            }

您是得到一个错误还是只得到0个结果?若一次添加一行有问题的过滤器会怎么样?我得到0个结果,并没有任何错误。我假设两个条件都与AND运算符一起使用,而我的意图是使用OR运算符。
                custFilter.AddCondition("name", ConditionOperator.Equal, SearchText);
                custFilter.AddCondition("den_firstname", ConditionOperator.Equal, SearchText);
                //custFilter.AddCondition("den_lastname", ConditionOperator.Equal, SearchText);
                custFilter.AddCondition("emailaddress1", ConditionOperator.Equal, SearchText);
                custFilter.AddCondition("telephone1", ConditionOperator.Equal, SearchText);
            }
QueryExpression Query = new QueryExpression { EntityName = "incident", ColumnSet = new ColumnSet(true) };

            LinkEntity CustomerEntity = new LinkEntity
            {
                LinkFromEntityName = "incident",
                LinkToEntityName = "account",
                LinkFromAttributeName = "customerid",
                LinkToAttributeName = "accountid",
                EntityAlias = "Customer",
                Columns = new ColumnSet("den_firstname", "den_lastname", "name", "accountid", "emailaddress1", "telephone1", "den_lcouserid"),
                JoinOperator = JoinOperator.Inner
            };
            CustomerEntity.LinkCriteria.AddCondition("den_lcouserid", ConditionOperator.Equal, lconameId);

            LinkEntity SubSubTypeEntity = new LinkEntity
            {
                LinkFromEntityName = "incident",
                LinkToEntityName = "den_subsubtype",
                LinkFromAttributeName = "den_subsubtypeid",
                LinkToAttributeName = "den_subsubtypeid",
                JoinOperator = JoinOperator.Inner,
                EntityAlias = "SubSubType",
                Columns = new ColumnSet("den_resolvedby")
            };            

            Query.LinkEntities.Add(CustomerEntity);
            Query.LinkEntities.Add(SubSubTypeEntity);                             

            FilterExpression incidentChildFilterOR = Query.Criteria.AddFilter(LogicalOperator.Or);
            FilterExpression incidentChildFilterAND = Query.Criteria.AddFilter(LogicalOperator.And);
            FilterExpression customerChildFilterOR = CustomerEntity.LinkCriteria.AddFilter(LogicalOperator.Or);

            if (SRStatus > 0)
                incidentChildFilterAND.AddCondition("statuscode", ConditionOperator.Equal, SRStatus);
            if (ResolutionType > 0)
                incidentChildFilterAND.AddCondition("den_roltype", ConditionOperator.Equal, ResolutionType);  

            if (!string.IsNullOrEmpty(SearchText))
            {
                if (SRStatus > 0)
                    incidentChildFilterOR.AddCondition("statuscode", ConditionOperator.Equal, SRStatus);
                if (ResolutionType > 0)
                    incidentChildFilterOR.AddCondition("den_roltype", ConditionOperator.Equal, ResolutionType); 

                incidentChildFilterOR.AddCondition("den_userid", ConditionOperator.Equal, SearchText);
                incidentChildFilterOR.AddCondition("ticketnumber", ConditionOperator.Like, "%" + SearchText + "%");
                incidentChildFilterOR.AddCondition("title", ConditionOperator.Equal, SearchText);


                customerChildFilterOR.AddCondition("name", ConditionOperator.Equal, SearchText);
                customerChildFilterOR.AddCondition("den_firstname", ConditionOperator.Equal, SearchText);
                customerChildFilterOR.AddCondition("den_lastname", ConditionOperator.Equal, SearchText);
                customerChildFilterOR.AddCondition("emailaddress1", ConditionOperator.Equal, SearchText);
                customerChildFilterOR.AddCondition("telephone1", ConditionOperator.Equal, SearchText);
            }