我正在尝试使用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'条件。
请帮助,谢谢。
答案 0 :(得分:0)
从您的第二个实体过滤器操作中删除第一个条件为null,因为无论如何您要提供一些特定的值以及您得到的值是什么。您的值本身为null还是包含数据。
在为第二个条件赋值之前,最好先检查它是否包含数据。