Dynamics crm 2011 CRM 2011未知条件运算符:NotOn

Dynamics crm 2011 CRM 2011未知条件运算符:NotOn,dynamics-crm-2011,Dynamics Crm 2011,我在一个插件中进行这个简单的查询: QueryExpression query=newqueryexpression(hb_aula.EntityLogicalName); query.ColumnSet=新列集(true); query.Criteria=newFilterExpression(LogicalOperator.And); 添加(新的条件表达式(“hb_datafim”,ConditionOperator.NotOn,DateTime.Now)); EntityCollectio

我在一个插件中进行这个简单的查询:

QueryExpression query=newqueryexpression(hb_aula.EntityLogicalName);
query.ColumnSet=新列集(true);
query.Criteria=newFilterExpression(LogicalOperator.And);
添加(新的条件表达式(“hb_datafim”,ConditionOperator.NotOn,DateTime.Now));
EntityCollection ent=service.RetrieveMultiple(查询);
我试图检索所有
hb_aula
记录,其中
hb_datafim
日期字段不在今天(或其他特定日期,
DateTime.Now
只是一个示例)

当我执行这个时,我得到了错误

未知条件运算符:NotOn


我是否做错了什么,或者这是一个未完成的CRM 2011功能?

我对您的用例进行了一些测试,得到了相同的结果。看起来这可能在SDK中未完成。我建议使用以下变通方法-

DateTime today = DateTime.Now;
DateTime yesterday = today.AddDays(-1);
DateTime tomorrow = today.AddDays(1);
FilterExpression filter = new FilterExpression(LogicalOperator.Or);
filter.AddCondition("createdon", ConditionOperator.OnOrBefore, yesterday);
filter.AddCondition("createdon", ConditionOperator.OnOrAfter, tomorrow);
QueryExpression query = new QueryExpression("contact")
    {
        ColumnSet = new ColumnSet(true),
        Criteria = filter
    };

EntityCollection ent = service.RetrieveMultiple(query);

为什么不在今天早上使用一个少于00:00的时间段(所以将DateTime.Now转换为只在00:00进行约会并使用它)?我觉得这很好。您是否有任何错误。时间还是编译时间?AdamV我不是在寻找解决方法,我想知道为什么我不能使用那个特定的操作符。如果不能使用,为什么会在那里?为了模拟同一个操作符,我总是需要两个条件,一个是小于,另一个是大于,并且仍然存在时间部分的问题。