OData списка событий Outlook не может быть упорядочен по "Id" - PullRequest
0 голосов
/ 18 сентября 2018

Я попытался получить список событий от Microsoft Graph, следуя этой документации .

Я хотел бы получить список с порядком по lastModifiedDateTime, а затем id.

Вот пример запроса:

var getResource = string.Format("/me/calendar/events/?$filter=lastModifiedDateTime ge {0}&$orderBy=lastModifiedDateTime, id", XmlConvert.ToString(updatedMin, XmlDateTimeSerializationMode.Utc));

Однако, когда я его выполнил, он выдает ошибку:

{
  "error": {
    "code": "ErrorInvalidProperty",
    "message": "The property 'Id' does not support filtering.",
    "innerError": {
      "request-id": "bb56a0d0-46f3-4b7c-80bd-043a0b3fd8b5",
      "date": "2018-09-17T15:23:40"
    }
  }
}

Фактически я не установилId в $filter, но вместо этого я установил $orderby.

Когда я попытался исключить Id из $orderby, это работает.Вот рабочий запрос:

var getResource = string.Format("/me/calendar/events/?$filter=lastModifiedDateTime ge {0}&$orderBy=lastModifiedDateTime", XmlConvert.ToString(updatedMin, XmlDateTimeSerializationMode.Utc));

Кто-нибудь имеет представление о том, как упорядочить список на основе Id?

1 Ответ

0 голосов
/ 18 сентября 2018

Вы не можете заказать по id, и не имеет никакого смысла делать это.id - это хешированная комбинация нескольких свойств (предмет, путь и т. Д.).Таким образом, их ценность не является ни заказываемой, ни читаемой человеком.

Это, например, фактическое id значение:

AAMkAGVmMDEzMTM4LTZmYWUtNDdkNC1hMDZiLTU1OGY5OTZhYmY4OABGAAAAAAAiQ8W967B7TKBjgx9rVEURBwAiIsqMbYjsT5e-T7KzowPTAAAAAAENAAAiIsqMbYjsT5e-T7KzowPTAACNM9xPAAA=

Кроме того, я настоятельно рекомендую использовать Microsoft Graph .NET Client вместосвоя.Это поможет уменьшить кривую обучения и даст вам более читаемый код:

await graphClient.Me
   .Calendar
   .Events
   .Request()
   .Filter("lastModifiedDateTime ge {dateTime}")
   .OrderBy("lastModifiedDateTime") 
   .GetAsync();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...