背景:dynamic crm在用组织服务创建数据的时候报错:Expected non-empty Guid
原因:因为给lookup字段赋值的时候,数据的guid为空。
例子:
Entity approvalInfo = new Entity("new_approvalcenter");
approvalInfo["subject"] = "测试银行";
approvalInfo["regardingobjectid"] = new EntityReference("eden_bank", new Guid("20f63327-0fbb-ec11-a12c-005056ac8d5a"));
var id = svc.Create(approvalInfo);
Entity updateTodo = new Entity("new_approvalcenter");
updateTodo.Id = new Guid("4703c443-18cc-ec11-a130-005056ac8d5a");
updateTodo["statecode"] = new OptionSetValue(1);
updateTodo["statuscode"] = new OptionSetValue(2);
updateTodo["regardingobjectid"] = approvalInfo.ToEntityReference();
svc.Update(updateTodo);
上诉例子,approvalInfo是新创建的,然后直接拿来用,因为创建的时候并不会把guid赋值给当前实例,如果赋值的话就报错:Expected non-empty Guid
解决方案:赋值方式改为如下
updateTodo["regardingobjectid"] = new EntityReference(approvalInfo.LogicalName, id);