QueryExpression в поле, которое не должно быть нулевым и имеет определенное значение - PullRequest
0 голосов
/ 22 июня 2019

Я пытаюсь написать выражение QueryExpression в C #, используя CRM SDK. Где у меня есть основной запрос и некоторые объекты, чтобы присоединиться. Моя проблема в том, что у одного из объектов, к которым я присоединяюсь, есть поле, которое мне нужно отфильтровать, и оно также не может быть пустым.

var mainQuery = new QueryExpression([entity1])
{
    ColumnSet = new ColumnSet("XXXX"),
};
var entity1Join = mainQuery.AddLink([fields], JoinOperator.Inner);

...[other joins here]

var entity2Join = entity1Join.AddLink("entity2", "fieldid", "fieldid", JoinOperator.Inner);
contactJoin.LinkCriteria = new FilterExpression()
{
    FilterOperator = LogicalOperator.And,
    Conditions = { 
            new ConditionExpression([field1], ConditionOperator.NotNull), 
            new ConditionExpression([field1], ConditionOperator.Equal, [value])
        }   
};
...[other joins here]


var result = this.CRMClient.OrganizationServiceProxy.RetrieveMultiple(mainQuery).Entities;

Я получаю эту ошибку:

Условие для атрибута «entity2.field1»: недопустимое значение для атрибута. Вместо этого используйте условия 'Null' или 'NotNull'.

Пожалуйста, помогите, спасибо.

1 Ответ

0 голосов
/ 22 июня 2019

Из вашей второй операции фильтрации сущностей удалите 1-е условие для нуля, потому что в любом случае вы даете какое-то определенное значение, а также то, что вы получаете.Является ли ваше значение нулевым или содержит данные.

Прежде чем указывать значение для 2-го условия, лучше проверьте, содержит ли оно данные или нет.

...