首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Outlook事件列表的OData不能按"Id“排序

Outlook事件列表的OData不能按"Id“排序
EN

Stack Overflow用户
提问于 2018-09-18 23:09:13
回答 1查看 306关注 0票数 2

我尝试在this documentation之后从Microsoft Graph获取事件列表。

我想先得到按lastModifiedDateTime排序的列表,然后是id列表。

以下是示例查询:

代码语言:javascript
代码运行次数:0
运行
复制
var getResource = string.Format("/me/calendar/events/?$filter=lastModifiedDateTime ge {0}&$orderBy=lastModifiedDateTime, id", XmlConvert.ToString(updatedMin, XmlDateTimeSerializationMode.Utc));

但是,当我执行它时,它会导致一个错误:

代码语言:javascript
代码运行次数:0
运行
复制
{
  "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"
    }
  }
}

实际上,我没有在$filter中设置Id,而是将其设置为$orderby

当我试图从$orderby中排除Id时,它起作用了。以下是工作查询:

代码语言:javascript
代码运行次数:0
运行
复制
var getResource = string.Format("/me/calendar/events/?$filter=lastModifiedDateTime ge {0}&$orderBy=lastModifiedDateTime", XmlConvert.ToString(updatedMin, XmlDateTimeSerializationMode.Utc));

有人知道如何根据Id对列表进行排序吗?

EN

回答 1

Stack Overflow用户

发布于 2018-09-19 00:53:34

您不能按id排序,这样做也没有任何意义。id是几个属性(主题、路径等)的散列组合。因此,它们的值既不是可排序的,也不是人类可读的。

例如,这是一个实际的id值:

代码语言:javascript
代码运行次数:0
运行
复制
AAMkAGVmMDEzMTM4LTZmYWUtNDdkNC1hMDZiLTU1OGY5OTZhYmY4OABGAAAAAAAiQ8W967B7TKBjgx9rVEURBwAiIsqMbYjsT5e-T7KzowPTAAAAAAENAAAiIsqMbYjsT5e-T7KzowPTAACNM9xPAAA=

此外,我强烈建议使用Microsoft Graph .NET Client,而不是使用自己的。它将有助于减少学习曲线,并为您提供更具可读性的代码:

代码语言:javascript
代码运行次数:0
运行
复制
await graphClient.Me
   .Calendar
   .Events
   .Request()
   .Filter("lastModifiedDateTime ge {dateTime}")
   .OrderBy("lastModifiedDateTime") 
   .GetAsync();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52389666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档