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);
}