2

下面的代码从我用来保存“模板”记录的实体创建一组记录。我遍历模板并创建有效的记录,包括我使用 EntityReferenceentity 的查找字段。但是,当我使用 EntityReference 创建与父实体记录的关系时,我会收到此错误。

crm 2011 无法将“System.Guid”类型的对象转换为“Microsoft.Xrm.Sdk.EntityReference”类型

            foreach (var template in templateSteps.Entities)
            {
                Entity step = new Entity("img_workflowmanager");
                step["subject"] = template["img_name"];

                if (step.Contains("img_poststepid"))
                {
                    step["img_poststepid"] = (EntityReference)template["img_poststepid"];
                }
                if (step.Contains("img_prestepid"))
                {
                    step["img_prestepid"] = (EntityReference)template["img_prestepid"];
                }

                step["img_workflowstepsid"] = (EntityReference)postMessageImage["img_procurementpackageid"];
                this._orgService.Create(step);
            }
4

1 回答 1

8

消息很清楚,postMessageImage["img_procurementpackageid"]包含一个 Guid 而不是EntityReference.

假设实体名称是img_workflowsteps你可以写

Guid packageId = (Guid)postMessageImage["img_procurementpackageid"];
step["img_workflowstepsid"] = new EntityReference("img_workflowsteps", packageId);

顺便说一句,前两个 if 条件将永远不会执行,因为当您使用该语法创建实体时,没有定义任何属性。

于 2013-07-31T16:06:57.517 回答