2016-01-12 5 views
0

Я пытаюсь получить данные из родительского и дочернего объектов в MS CRM.Как добавить условие «ИЛИ» в LinkedEntity Класс QueryExpression в MS CRM

Я написал код в QueryExpression класса

Я хочу знать, как добавить «или» состояние в LinkedEntity Query в QueryExpression классе.

expOpp.LinkEntities[0].LinkCriteria.Conditions.Add(new ConditionExpression("statecode", ConditionOperator.Equal, 1)); 

В приведенном выше коде мне нужно добавить условие «ИЛИ».

Пожалуйста, помогите мне, как это сделать.

Заранее спасибо

+0

Что вы пытаетесь достичь? Нужно ли комбинировать условия для одного (связанного) объекта с Or-clause? Или вам нужно получить родительские и дочерние сущности, даже если дочерние сущности не существуют? Если первое верно, вам нужен Or-operator в 'FilterExpression', иначе вам нужно левое внешнее соединение. –

+0

Привет, Хенк, я пытаюсь добиться записи с помощью «ИЛИ» condtion –

ответ

2

Вы можете добавить «или» состояние на связанный объекте, как это (спасибо Хенка для обновления своих знаний!):

var queryExpression = new QueryExpression("contact"); 
var linkToAccount = queryExpression.AddLink("account", "parentcustomerid", "accountid"); 
linkToAccount.LinkCriteria.FilterOperator = LogicalOperator.Or; 
linkToAccount.LinkCriteria.Conditions.Add(new ConditionExpression("field1", ConditionOperator.Equal, true)); 
linkToAccount.LinkCriteria.Conditions.Add(new ConditionExpression("field2", ConditionOperator.Equal, 100000001)); 
queryExpression.LinkEntities.Add(linkToAccount); 

Или то, что вы можете сделать, это создать «или» фильтр на связанном объекте и добавить к нему следующие условия:

var queryExpression = new QueryExpression("contact"); 
var linkToAccount = queryExpression.AddLink("account", "parentcustomerid", "accountid"); 
var filter = linkToAccount.LinkCriteria.AddFilter(LogicalOperator.Or); 
filter.Conditions.Add(new ConditionExpression("field1", ConditionOperator.Equal, true)); 
filter.Conditions.Add(new ConditionExpression("field2", ConditionOperator.Equal, 100000001)); 
queryExpression.LinkEntities.Add(linkToAccount); 
+1

Да, это * * возможно установить OR-operator напрямую: 'expOpp.LinkEntities [0] .LinkCriteria.FilterOperator = LogicalOperator.Or' –

+0

Действительно, вы Можно. И, похоже, это работает так же. Я всегда использовал фильтры! Я уточню свой ответ, чтобы отразить это. Спасибо –

+0

Ну, свойство 'LinkCriteria' на самом деле * есть *' FilterExpression'. Другими словами, когда вы добавляете дополнительный фильтр, вы просто добавляете дополнительные скобки вокруг своих условий. –