System.InvalidCastException 动态客户关系管理

System.InvalidCastException Dynamics CRM

我有一个创建或更新帐户的代码。此代码块调用另一种方法,一旦它被选为帐户的主要联系人,该方法就会将 accountid 保存在联系人记录中。

但是,当我尝试 运行 这个时,我收到了这个错误:

An exception of type 'System.ServiceModel.FaultException`1' occurred in Microsoft.Xrm.Sdk.dll but was not handled in user code Additional information: System.InvalidCastException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #06B9DDED

它发生在我对 UpdateAccountNameContactEntity 方法进行更新时。我读过几个网站,说它可能是我正在使用的 Guid,但我对此很陌生,我不知道该如何解决。

我现在正在使用 ASP.NET MVC 和 Dynamics 365。我使用 this 作为我创建这个的指南。

这是代码。

public void SaveAccount(AccountEntityModels objAccountModel)
    {
        using (OrganizationService service = new OrganizationService("CRM"))
        {
            Entity AccountEntity = new Entity("account");

            if (objAccountModel.AccountID != Guid.Empty)
            {
                AccountEntity["accountid"] = objAccountModel.AccountID;
            }

            AccountEntity["name"] = objAccountModel.AccountName;
            AccountEntity["telephone1"] = objAccountModel.Phone;
            AccountEntity["fax"] = objAccountModel.Fax;
            AccountEntity["websiteurl"] = objAccountModel.Website;
            AccountEntity["primarycontactid"] = new Microsoft.Xrm.Sdk.EntityReference { Id = objAccountModel.PrimaryContact.Id, LogicalName = "account" };

            if (objAccountModel.AccountID == Guid.Empty)
            {
                objAccountModel.AccountID = service.Create(AccountEntity);
                UpdateAccountNameContactEntity(objAccountModel.AccountID, objAccountModel.PrimaryContact.Id);
            }
            else
            {
                service.Update(AccountEntity);
                UpdateAccountNameContactEntity(objAccountModel.AccountID, objAccountModel.PrimaryContact.Id);
            }
        }
    }

    public void UpdateAccountNameContactEntity(Guid accountId, Guid contactId)
    {
        using (OrganizationService service = new OrganizationService("CRM"))
        {
            try
            {
                Entity contactEntity = new Entity("contact");
                contactEntity["contactid"] = contactId;
                contactEntity["parentcustomerid"] = accountId;
                service.Update(contactEntity); //THIS IS WHERE I GET THE ERROR
            }
            catch (Exception ex)
            {
            }
        }
    }

您正在尝试在 EntityReference 中分配 GUID。

更改此行

contactEntity["parentcustomerid"] = accountId;

如下所示:

contactEntity["parentcustomerid"] = new Microsoft.Xrm.Sdk.EntityReference { Id = accountId, LogicalName = "account" };