簡體   English   中英

更新列表項多個查找值字段 Microsoft Graph

[英]Update list item multiple lookup value field Microsoft Graph

我正在嘗試更新列表項的多個查找值字段。

我嘗試了以下代碼:

List < QueryOption > options = new List < QueryOption > {
    new QueryOption("$expand", "listitem")
};
//get drive item with list item
var driveItem = graphClient.Sites[IdGestDoc].Drive.Items[itemResult.Id].Request(options).GetAsync().Result;
var fieldValueSet = new FieldValueSet {
    AdditionalData = new Dictionary < string,
    object > {
        {
            "Theme_fonctionnel@odata.type",
            "Collection(Edm.String)"
        }, {
            "Theme_fonctionnel", ThemeFonctionnel.ToArray()
        } //ThemeFonctionnel is a List<string> => lookupid
    }
};
await graphClient.Sites[IdGestDoc].Lists["Documents"].Items[driveItem.ListItem.Id].Fields.Request().UpdateAsync(fieldValueSet);

但是這段代碼不起作用,我找不到我所缺少的。 任何幫助將不勝感激 !

要設置 Lookup 字段,您需要通過傳入屬性名稱和添加的“LookupId”來設置屬性:

        string propertyName = "Theme_fonctionnel";

        var fieldValueSet = new FieldValueSet();

        var propertyValuesArray = options.ToArray();

        var attributes = new Dictionary<string, object>();

        //first, we need to specify the input data type
        string oDataTypeInfoPropertyName = propertyName + "LookupId@odata.type";
        string oDataDataType = "Collection(Edm.String)";
        attributes.Add(oDataTypeInfoPropertyName, oDataDataType);

        //next, we need to pass the values as an array
        string newPropertyName = propertyName + "LookupId";
        attributes.Add(newPropertyName, propertyValuesArray);

        fieldValueSet.AdditionalData = attributes;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM