使用Microsoft.Graph 5.9.0时Graph Explorer生成的C#代码片段报错
解决Microsoft Graph SDK 5.x中OData Select语法错误的方法
错误原因分析
你遇到的错误是因为Graph SDK 5.x的Select()方法语法和直接的URL参数写法不一致,生成的代码错误地把URL里的(select=...)格式直接套用到了SDK方法中,这不符合SDK的语法规范。正确的SDK语法写法
在Microsoft Graph SDK 5.x中,Select()方法只需直接传入要选择的字段名称,多个字段用逗号分隔即可,不需要添加select=前缀或括号。示例代码如下:var result = await graphClient .[你的资源路径] .Select("Title,RequestForLookupId,Completion,CurrentQueue,DoneReceived") .GetAsync();获取正确代码的技巧
- 在Graph Explorer中测试通过API请求后,切换到「代码片段」标签,选择「C# (Microsoft Graph SDK)」,生成的代码会自动适配SDK的语法规范。如果生成的代码仍有问题,手动修正
Select()方法的参数即可。 - 可以先在Graph Explorer中确认URL的
$select参数格式正确(比如?$select=Title,RequestForLookupId,...),然后将这些字段名直接复制到SDK的Select()方法中,不需要做任何额外格式转换。
- 在Graph Explorer中测试通过API请求后,切换到「代码片段」标签,选择「C# (Microsoft Graph SDK)」,生成的代码会自动适配SDK的语法规范。如果生成的代码仍有问题,手动修正
版本适配注意事项
Microsoft Graph SDK 5.x和4.x的语法有较大差异,5.x简化了OData查询的写法,不再需要构建SelectExpandBuilder之类的对象,直接传入字段字符串即可。确保你的代码是基于5.x版本的语法编写。
内容的提问来源于stack exchange,提问作者Ofer Gal
相关产品推荐
相关产品推荐

