字段中的QueryExpression不应为null,并且应具有特定值

时间:2019-06-22 12:00:26

标签: c# dynamics-crm xrm query-expressions

我正在尝试使用CRM SDK用C#编写QueryExpression。我有一个主要查询和一些要加入的实体。我的问题是,我加入的实体中有1个具有我需要过滤的字段,并且也不能为null。

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不是属性的有效值。改用'Null'或'NotNull'条件。

请帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

从您的第二个实体过滤器操作中删除第一个条件为null,因为无论如何您要提供一些特定的值以及您得到的值是什么。您的值本身为null还是包含数据。

在为第二个条件赋值之前,最好先检查它是否包含数据。