2014-09-19 1 views
1

Я пытаюсь получить события для пользователя из своей учетной записи Office 365, используя REST API, но фильтруется полем« LastModifiedTime ». Например, извлеките все события, которые произойдут после даты: '2014-09-19T03: 45: 30.4020439Z' или '2014-09-18T04: 05: 00Z', но я всегда получаю это сообщение об ошибке:Бинарный оператор GreaterThanOrEqual не определен для типов «Microsoft.Exchange.ExchangeSystem.ExDateTime

{ 
"error": { 
    "code":"ErrorInternalServerError", 
    "message":"The binary operator GreaterThanOrEqual is not defined for the types 
    ' Microsoft.Exchange.ExchangeSystem.ExDateTime' and 'System.DateTimeOffset'.", 
    "innererror":{ 
    "message":"The binary operator GreaterThanOrEqual is not defined for the types 
      'Microsoft.Exchange.ExchangeSystem.ExDateTime' and 'System.DateTimeOffset'.", 
    "type":"System.InvalidOperationException", 
    "stacktrace":" at 
      System.Linq.Expressions.Expression.GetComparisonOperator(ExpressionType 
      binaryType, String opName, Expression left, Expression right, Boolean 
      liftToNull)\r\n at 
      System.Linq.Expressions.Expression.GreaterThanOrEqual(Expression left, 
      Expression right, Boolean liftToNull, MethodInfo method)\r\n at 
      Microsoft.Exchange.Services.OData.Model.DataEntityFilterConverter.ConvertFilterNode(QueryNode queryNode)\r\n at Microsoft.Exchange.Services.OData.Model.DataEntityFilterConverter. 
      ConvertFilterClause(FilterClause filterClause)\r\n at 
      Microsoft.Exchange.Services.OData.Model.DataEntityQueryAdpater.GetEntityQueryOptions()\r\n 
      at Microsoft.Exchange.Services.OData.Model.FindEventsCommand.InternalExecute()\r\n at 
      Microsoft.Exchange.Services.OData.ODataCommand`2.Execute()\r\n at 
      Microsoft.Exchange.Services.OData.ODataTask.Execute(TimeSpan 
      queueAndDelayTime, TimeSpan totalTime)" 
    } 
    } 
} 

И вот URLs:

/Me/Events?$select=Subject,Start,End,LastModifiedTime&$filter=LastModifiedTime ge 2014-09-19T03:45:30.4020439Z 

/Me/Events?$select=Subject,Start,End,LastModifiedTime&$filter=LastModifiedTime ge 2014-09-18T04:05:00Z 

Я думаю, что моя ошибка вызвана форматом даты, но я не знаю, как ее решить.

Может ли кто-нибудь помочь мне в этом, пожалуйста!

Спасибо!

ответ

0

Вы можете попробовать лить свое значение даты в datetimeoffset, как показано ниже.

/Me/Events?$select=Subject,Start,End,LastModifiedTime&$filter=LastModifiedTime ge datetimeoffset'2014-09-19T03:45:30.4020439Z' 

/Me/Events?$select=Subject,Start,End,LastModifiedTime&$filter=LastModifiedTime ge datetimeoffset'2014-09-18T04:05:00Z' 

Или Вы можете использовать операцию CAST

/Me/Events?$select=Subject,Start,End,LastModifiedTime&$filter=LastModifiedTime ge cast(2014-09-19T03:45:30.4020439Z, Edm.DateTimeOffset) 

/Me/Events?$select=Subject,Start,End,LastModifiedTime&$filter=LastModifiedTime ge cast(2014-09-18T04:05:00Z, Edm.DateTimeOffset) 
+1

Спасибо за ответ! Я пробовал, что вам подскажет, но на этот раз покажет другую ошибку: > {"error": {"code": "ErrorInvalidUrlQuery", "message": "Неверный параметр запроса '$ filter'.", "Internalerror": { «message»: «Неверный параметр запроса« $ filter »». > «message»: «Тип дочернего элемента« Edm.DateTimeOffset »в листинге не был типом сущности. Каста может выполняться только для типов сущностей. – longnt5

+0

Попробовали ли вы оба варианта или просто листинг. Первый вариант должен работать входные строки – SCB

+0

Спасибо, я пробовал оба варианта. С первым вариантом является следующая ошибка: «error»: {«code»: «ErrorInvalidUrlQuery», «message»: «Параметр запроса« $ filter »равен недействителен. » – longnt5

Смежные вопросы