Graph API 过滤器适用于 GraphExplorer 但不适用于 SDK
Graph API filter working on GraphExplorer however not working on SDK
这是怎么回事 https://graph.microsoft.com/v1.0/me/onenote/notebooks?filter=tolower(name) eq 'my notebook'
Screenshot from Graph Explorer
当我尝试在 C# 中编写相同的代码时,出现以下错误
代码:BadRequest
消息:无效的过滤器子句
内部错误:
附加数据:
日期:2020-09-02T20:01:24
我正在使用下面的代码。
var NoteBook = await GraphClient.Me.Onenote.Notebooks.Request().Filter($"name eq 'My Notebook'").GetAsync();
它不适用于 https://graph.microsoft.com/v1.0/me/onenote/notebooks?filter=tolower(name) eq 'my notebook'
。您在 filter=xxx
之前错过了一个 $
。
正确的应该是https://graph.microsoft.com/v1.0/me/onenote/notebooks?$filter=tolower(displayName) eq 'my notebook'
.
没有名为 name
的 属性。您可以得到结果,因为过滤器没有生效。您列出所有笔记本。正确的是 displayName
.
但是在 SDK 中没有在笔记本 class 中定义的属性 name
。这就是您在使用 SDK 时出现错误的原因。
在 SDK 中你应该使用这个代码:
var NoteBook = await graphClient.Me.Onenote.Notebooks.Request().Filter($"displayName eq 'My Notebook'").GetAsync();
这是怎么回事 https://graph.microsoft.com/v1.0/me/onenote/notebooks?filter=tolower(name) eq 'my notebook'
Screenshot from Graph Explorer
当我尝试在 C# 中编写相同的代码时,出现以下错误 代码:BadRequest 消息:无效的过滤器子句 内部错误: 附加数据: 日期:2020-09-02T20:01:24
我正在使用下面的代码。
var NoteBook = await GraphClient.Me.Onenote.Notebooks.Request().Filter($"name eq 'My Notebook'").GetAsync();
它不适用于 https://graph.microsoft.com/v1.0/me/onenote/notebooks?filter=tolower(name) eq 'my notebook'
。您在 filter=xxx
之前错过了一个 $
。
正确的应该是https://graph.microsoft.com/v1.0/me/onenote/notebooks?$filter=tolower(displayName) eq 'my notebook'
.
没有名为 name
的 属性。您可以得到结果,因为过滤器没有生效。您列出所有笔记本。正确的是 displayName
.
但是在 SDK 中没有在笔记本 class 中定义的属性 name
。这就是您在使用 SDK 时出现错误的原因。
在 SDK 中你应该使用这个代码:
var NoteBook = await graphClient.Me.Onenote.Notebooks.Request().Filter($"displayName eq 'My Notebook'").GetAsync();