Я пишу запрос Microsoft Graph OData для получения почтовых сообщений на основе сообщения flagStatus, чтобы повторно использовать рабочий запрос в моем коде C #. Как должен выглядеть правильный запрос?
Следующий пример используется в Образце учетной записи , где все сообщения имеют объект flag
с полем flagStatus = "notFlagged"
.
https://graph.microsoft.com/v1.0/me/messages?$filter=flag/flagStatus eq 'notFlagged'
Ожидается, что все сообщения должны быть возвращены. Но в результате пустой массив был возвращен.
Если в запросе я меняю eq
на ne
на
https://graph.microsoft.com/v1.0/me/messages?$filter=flag/flagStatus ne 'notFlagged'
тогда все сообщения возвращаются. Но от меня ожидается, что здесь должен быть пустой массив в этом случае.
Учитывая, что, возможно, flag
объект не готов к фильтрации, я также попытался $expand
it
https://graph.microsoft.com/v1.0/me/messages?$expand=flag&$filter=flag/flagStatus eq 'notFlagged'
но получено сообщение об ошибке
Свойство 'flag' для типа 'microsoft.graph.message' не является свойством навигации или сложным свойством. Только свойства навигации могут быть расширены.
Так что, вероятно, $expand
для фильтрации флагов не требуется. Но можно ли вообще фильтровать по флагу сообщения?
Также, если учесть ситуацию, что объект flag
может быть нулевым, а также flagStatus
внутри может быть нулевым (по крайней мере, в C # class Microsoft.Graph.FollowupFlag
свойство FlagStatus
имеет значение NULL), то как должен выглядеть запрос для полного удовлетворения ниже требования?
Получать сообщения, чьи
flag
is null
- или
flag/flagStatus
- это null
- или
flag/flagStatus
- это 'notFlagged'