gpt4 book ai didi

c# - UpdateAsync 抛出 "Field ' id' 无法识别”错误

转载 作者:行者123 更新时间:2023-11-30 23:07:43 26 4
gpt4 key购买 nike

我有以下代码,使用 .NET Core 2.0 控制台应用程序用 C# 编写。我已经将这些相同的变量用于添加函数,并且一切正常。

GetAsync 起作用并拉回列表项。调用 UpdateAsync 时,我从 Microsoft Graph 收到错误返回:

Messsage: Field 'id' is not recognied
HResult: -2146233088
request-id: 0682cf9f-c828-43f1-bc9e-acb21631a58e
date: 01/11/2017 7:28:38 Ticks 636450912000000000

请注意,“已识别”是返回的实际拼写

这是我正在使用的代码:

var listItemId = SharePointIdToInSiteMapping.GetValueOrDefault(siteRecord.InSiteID);
var graphClient = GetGraphClient();

var listItem = await graphClient.Sites[siteId].Lists[listId].Items[listItemId].Request()
.Expand(i = > i.Fields)
.GetAsync();

listItem.Fields.AdditionalData["Title"] = siteRecord.Title;

try
{
var request = graphClient.Sites[siteId].Lists[listId].Items[listItemId].Request();
var result = await request.UpdateAsync(listItem);
Console.WriteLine($"Updated List Item at {result.WebUrl}");
}
catch (Exception e)
{
Console.WriteLine($"Error updating {siteRecord.Title}");
Console.WriteLine(e);
}

适用于感兴趣者的更新代码

var result = await graphClient.Sites[siteId].Lists[listId].Items[listItemId].Request().UpdateAsync(
new ListItem(){
Fields = new FieldValueSet{
AdditionalData = new Dictionary<string, object>{
{"Title", "A change title"}
}
}
}
);

最佳答案

此错误的原因是您将整个 ListItem 对象传递给 UpdateAsync。由于 id 属性是只读的,因此它返回错误。

为了向 ListItem 发送更新,您应该传入一个新的 ListItem 对象,其中仅包含您希望更改的属性:

var result = await graphClient
.Sites["siteId"]
.Lists["listId"]
.Items["listItemId"]
.Request()
.UpdateAsync(new ListItem()
{
// Properties you wish to change
});

关于c# - UpdateAsync 抛出 "Field ' id' 无法识别”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47050597/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com