c# - Graph API 查询 - 如何结合展开和选择
问题描述
我有以下工作代码,列出了 Sharepoint 站点中的所有文件,还获取了它们的 driveItem 详细信息:
var directoryContents = await App.GraphClient.Sites[SiteIdShortName].Lists[sharedDocsDriveId]
.Items
.Request()
.Expand(item => item.DriveItem)
.GetAsync();
SharedDocumentList.ItemsSource = directoryContents.CurrentPage.ToList();
现在,除了上述查询已经获取的数据之外,我还需要一种方法来获取每个项目的发布状态。我在stackoverflow上找到了这篇文章:
使用 microsoft graph api 检出 onedrive 文件的状态
因此,我尝试将代码更改为如下所示:
var directoryContents = await App.GraphClient.Sites[SiteIdShortName].Lists[sharedDocsDriveId]
.Items
.Request()
.Expand(item => item.DriveItem)
.Select(item => item.DriveItem.Publication)
.GetAsync();
SharedDocumentList.ItemsSource = directoryContents.CurrentPage.ToList();
但我收到以下错误消息:
Message=Lambda 表达式中的匿名类型只能使用 ListItem 类型的直接成员初始化参数名称:selectExpression Source=Microsoft.Graph
编辑 1
我也试过这个:
var queryOptions = new List<QueryOption>()
{
new QueryOption("select", "publication")
};
var directoryContents = await App.GraphClient.Sites[SiteIdShortName].Lists[sharedDocsDriveId]
.Items
.Request(queryOptions)
.Expand(item => item.DriveItem)
.GetAsync();
SharedDocumentList.ItemsSource = directoryContents.CurrentPage.ToList();
但我得到的错误是:
内部异常 1:JsonReaderException: '{' 在值之后无效。应为“,”、“}”或“]”。行号:0 | 字节位置行内:223。
解决方案
这对我有用。在Expand
我已经指定了要扩展的属性,其中select
声明了在driveItem
var directoryContents = await App.GraphClient.Sites[SiteIdShortName].Lists[sharedDocsDriveId]
.Items
.Request()
.Expand("driveItem($select=publication)")
.GetAsync();
SharedDocumentList.ItemsSource = directoryContents.CurrentPage.ToList();
推荐阅读
- ruby - 为什么当我尝试安装 0.3.x 版本但成功安装 0.4.x 及更高版本时 gem mysql2 无法安装?
- dataframe - Databricks Notebook 返回相同的随机值
- javascript - 显示 flex 不能处理我的数据我想并排显示数据
- react-native - 如何在抽屉导航器中的屏幕反应导航中设置自定义边框半径和 zIndex?
- azure - 一个固定 IP 上的多个 Azure 容器实例组
- python-3.x - 如何将包含与 ScalarListType 的literal_column 一起使用?
- java - 休眠 PersistenceException (OneToMany)
- python-3.x - 二分搜索问题没有给出想要的结果。不确定是什么导致了问题?
- visual-studio - ASP.NET 5 已发布文件夹包含错误(旧)DLL
- swift - 使 NSTextField 在不可选择的 NSTableCellView 中可选