You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Microsoft Graph API设置SingleValueExtendedProperties报错求助

问题原因及解决办法
  • 你遇到的「Set action is invalid for property」错误,核心问题是直接替换了整个SingleValueExtendedProperties集合。Graph API的Patch操作不允许直接对整个扩展属性集合执行Set(替换)动作,只能针对单个扩展属性进行添加或更新。

  • 你的代码里emailMessage.SingleValueExtendedProperties = new List<SingleValueLegacyExtendedProperty>();这一行是关键错误:这会清空原有扩展属性并替换成新列表,触发了Graph API不允许的集合级Set操作。

修正后的代码示例

不需要重新初始化整个列表,直接往已有集合里加新属性即可:

// 不要重新赋值整个列表,直接添加新属性
emailMessage.SingleValueExtendedProperties.Add(
    new SingleValueLegacyExtendedProperty 
    { 
        Id = "String {8ECCC264-6880-4EBE-992F-8888D2EEAA1D} Name x-matter-ref", 
        Value = reference.ToString(), 
    }
);

如果是用Graph SDK发起Patch请求,更规范的写法是只针对要添加的扩展属性构建请求,避免影响原有属性:

var patchMessage = new Message
{
    SingleValueExtendedProperties = new List<SingleValueLegacyExtendedProperty>
    {
        new SingleValueLegacyExtendedProperty
        {
            Id = "String {8ECCC264-6880-4EBE-992F-8888D2EEAA1D} Name x-matter-ref",
            Value = reference.ToString()
        }
    }
};

await graphClient.Users[userId].Messages[messageId]
    .PatchAsync(patchMessage, (requestConfiguration) =>
    {
        // 指定只更新扩展属性,避免不必要的字段操作
        requestConfiguration.QueryParameters.Select = new[] { "singleValueExtendedProperties" };
    });

另外要注意:如果这个扩展属性已经存在,上述操作会自动更新它的值;如果不存在则会新增,符合Patch的语义。

内容的提问来源于stack exchange,提问作者TeePee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 13:57:15