CRM 2011/2015 将 select 设置为空

Crm 2011/2015 set select to null

我在一个页面上有一个选项集,该选项集已被赋值。 我想更新此值并将其设置为空。

我正在尝试这种方式

Crm.Context.Account myAccount = new Crm.Context.Account();
myAccount.Id = "1af43...";
myAccount.Name = "bla bla bla";
myAccount.psw1_TipoSoc= null;

OrganizationRequest request = new UpdateRequest { Target = myAccount };

requests.Requests.Add(request);

ExecuteMultipleResponse responses = (ExecuteMultipleResponse)this._context.Execute(requests);

foreach (var responseItem in responses.Responses)
{
    if (responseItem.Fault != null)
    {
         //TODO: Error policy
         DisplayFault(requests.Requests[responseItem.RequestIndex],
             responseItem.RequestIndex, responseItem.Fault);
    }
}

Crm.Context.Account是我运行这个命令时生成的实体:

CrmSvcUtil.exe /codeCustomization:"Microsoft.Xrm.Client.CodeGeneration.CodeCustomization, Microsoft.Xrm.Client.CodeGeneration" ...

psw1_TipoSoc的类型是int? 我认为更新不起作用...但是如果我编辑名称一切正常..即使我更新帐户名称和社会类型...但是当我继续我的 CRM 时OptionSet 还是原来的值...

我想设置第一个选项,没有值...如果我设置另一个值它有效,但如果我设置为空则无效..

我该如何解决?

谢谢

TypeOfSociety 字段似乎不存在于帐户实体的系统字段中,这导致您可能没有使用正确的字段架构名称在 CRM 中更新它。如果这是一个自定义字段,它会有一个前缀,可以是 'new_' 或您在解决方案中使用的发布者前缀。 因此,您应该检查您需要在表单上更新的字段的实际架构名称,如果它们与您正在更新的字段是正确的。

如果情况并非如此,而您只是在 post 中使用了一个虚拟架构名称字段,那么您应该尝试将字段值更新为不同于 null 的值,只是为了检查它是否有效.由于这是一个具有可为空 int (int?) 的字段,因此我假设这是一个 OptionSet 字段。所以,在CRM中的字段中,勾选设置该字段的可用int选项,并尝试设置。 如果更新也不起作用,我会通过 CrmSvcUtil.exe 重新生成早期绑定数据 class,然后重试。

已解决:必须设置为-1;不为空...