Dynamics crm OptionSetValueCollection不接受空值。将值设置为null时引发常规SQL错误

Dynamics crm OptionSetValueCollection不接受空值。将值设置为null时引发常规SQL错误,dynamics-crm,dynamics-crm-online,dynamics-365,Dynamics Crm,Dynamics Crm Online,Dynamics 365,我正在CRM插件中创建一个新记录,从相关记录中读取数据,我传递的数据可能/可能不包含OptionSetValueCollection。每当OptionSetValueCollection的值为null时,IOrganization.Create就会引发一般SQL异常 目前,我正在检查提交的值是否为null,如果不为null,我不会为创建的对象提交值 我的问题是为什么OptionSetValueCollection不接受null?这是平台问题吗 我还尝试创建一个列表对象,从OptionSetVal

我正在CRM插件中创建一个新记录,从相关记录中读取数据,我传递的数据可能/可能不包含OptionSetValueCollection。每当OptionSetValueCollection的值为null时,IOrganization.Create就会引发一般SQL异常

目前,我正在检查提交的值是否为null,如果不为null,我不会为创建的对象提交值

我的问题是为什么OptionSetValueCollection不接受null?这是平台问题吗

我还尝试创建一个列表对象,从OptionSetValueCollection添加传入的OptionSetValues,然后将其传递给目标属性,尝试传入null,还使用了null合并操作符,但都没有成功

//Earlybound code
Account account = new Account(){
       Name = newBrand,
       new_accounttype = new OptionSetValue((int)new_AccountType.Brand),
       TerritoryId = siteRequestRecord.new_territoryid,
       new_category1 = siteRequestRecord.new_category1 ?? null,
   };
if (category2 != null)
{
     account.new_category2 = siteRequestRecord.new_category2;
}
service.Create(account);

如果我知道你想将Optionset设置为null。使用下面的代码,它将工作并为您的optionset设置null

new_accounttype = null;

有一个与multiselect optionset相关的错误-如果在创建过程中将其设置为null,将触发错误。但将字段设置为null的代码在更新期间也可以正常工作。 所以,若在创建期间将其设置为null,只需不设置字段值,结果将得到字段的空白值


在上面的代码片段中,account.new_category2是一个多选选项集。问题是关于multi-select-option-set的,您解决了吗?没有,我只是通过传递上面代码中的问题,我正在尝试在c插件中设置multi-select-option-set字段值。当传递的值为null时,它将引发异常,并且记录既不保存也不创建。如果正在传递的变量不是null,那么一切正常。