如何在graph api中按接收日期顺序升序接收消息

我正在尝试通过 Microsoft Graph API 接收电子邮件:

requestBuilder
    .Delta()
    .Request()
    .Expand("attachments")
    .GetAsync(ChildCancellationToken.Token);

但消息按 ReceivedDateTime 降序排列。例如,我们有 15 条 ReceivedDateTime = n 的新消息,其中 n 表示日期时间。在第一部分将出现:

[15,14,13,12,11,10,9,8,7,6 (deltaHash="someValue")]

第二:

[5,4,3,2,1 (deltaHash=NULL)]

因此,最旧的电子邮件将是最新的(LIFO,而不是 FIFO)。但我希望得到:

[1,2,3,4,5,6,7,8,9,10 (deltaHash="someValue")]
[11,23,13,14,15 (deltaHash=NULL)]

我尝试了什么:我尝试了 OrderBy(string value)。对于这两个我得到例外:

.OrderBy("ReceivedDateTime asc")
.OrderBy("ReceivedDateTime")

这工作正常:

.OrderBy("ReceivedDateTime desc")

但这与默认行为相同,我认为这实际上是一个错误。因此,无法按 ASC 顺序对电子邮件进行排序。

如何解决乍一看非常简单和常见的要求?

stack overflow How to receive messages in ascending by received date order in graph api
原文答案

答案:

作者头像

看起来这是 documentation 中指定的已知问题。

唯一支持的 $orderby 表达式是 $orderby=receivedDateTime+desc。如果不包含 $orderby 表达式,则无法保证退货顺序。

所以现在你需要通过编写自己的代码来对它们进行排序。

作者头像

我可以确认 .OrderBy("ReceivedDateTime asc") 现在正在使用我正在使用的 microsoft-graph API 版本 5.36.0