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

如何通过OData及Microsoft OData Client(.NET)清空D365多选选择列表

解决Dataverse多选选项列表字段清空问题

OData API 原生调用方案

要清空多选选项列表字段,直接在PATCH请求中将字段值设为null即可,不要使用空字符串或空格。请求体示例:

{
  "new_yourmultiselectfield@odata.type": "#Microsoft.Dynamics.CRM.String",
  "new_yourmultiselectfield": null
}

Dataverse会将null识别为清除所有选中选项的指令,避免解析空字符串时触发的格式错误。

Microsoft OData Client(.NET) 实现方案

直接更新实体对象

找到目标实体实例后,将对应多选字段属性设为null,再执行保存操作:

// 替换为你的实体类名、字段名和目标ID
var targetEntity = context.YourEntitySet.Where(e => e.Id == Guid.Parse("目标实体ID")).FirstOrDefault();
if (targetEntity != null)
{
    targetEntity.New_YourMultiselectField = null;
    context.UpdateObject(targetEntity);
    context.SaveChanges();
}

使用Delta对象进行部分更新

如果只需更新单个字段,用Delta对象更高效:

var delta = new Delta<YourEntity>();
delta.SetPropertyValue(nameof(YourEntity.New_YourMultiselectField), null);
context.UpdateObject(delta);
context.SaveChanges();

关键说明

不要传递空字符串或空格作为字段值,Dataverse会尝试将这类内容解析为选项值集合,进而触发"The optionset values sent are not valid integers."错误。传递null是符合OData规范的清除属性值方式,能正确触发清空操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 11:57:45