下面的代码从我用来保存"模板"的实体创建一组记录。记录。我遍历模板并创建记录,其中包括我使用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);
}
答案 0 :(得分:6)
消息很明确,postMessageImage["img_procurementpackageid"]
包含Guid,而不是EntityReference
。
假设实体名称为img_workflowsteps
,您可以写
Guid packageId = (Guid)postMessageImage["img_procurementpackageid"];
step["img_workflowstepsid"] = new EntityReference("img_workflowsteps", packageId);
顺便说一下,前两个if条件永远不会被执行,因为当你用这个语法创建一个实体时,没有定义任何属性。