我有一个创建或更新帐户的代码。此代码块调用另一种方法,该方法一旦被选为帐户的主要联系人,就会将联系人记录保存在联系人记录中。
但是,当我尝试运行此命令时,我收到此错误:
Microsoft.Xrm.Sdk.dll中出现'System.ServiceModel.FaultException`1'类型的异常,但未在用户代码中处理 其他信息:System.InvalidCastException:Microsoft Dynamics CRM遇到错误。管理员或支持的参考编号:#06B9DDED
它发生在UpdateAccountNameContactEntity方法的Update上。我已经阅读了几个网站,说它可能是我正在使用的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)
{
}
}
}
答案 0 :(得分:3)
您正尝试在EntityReference中分配GUID。
更改此行
contactEntity["parentcustomerid"] = accountId;
如下所示:
contactEntity["parentcustomerid"] = new Microsoft.Xrm.Sdk.EntityReference { Id = accountId, LogicalName = "account" };