我正在尝试更新CRM 2011预操作更新插件中的相关记录。一个简单的查询根据几个参数检索一组相关的实体,然后来自结果查询的每个实体都会查找相关的实体集。但是,引发异常时引发InvalidCastException。通过代码遍历代码中的每个值看起来都是正确的,Guids在期望的地方等。我禁用了可能涉及目标和相关实体的其他插件,但问题依然存在。目标实体与相关实体之间的关系为1:N。我已经证实,这个问题并不是因为这个属性期望的是一个EntityReference而不是一个Guid。CRM 2011预操作更新相关实体查找字段
该插件的代码是下面,我在那里取代真正的实体/属性名称的更加明显代理(它使用的开发工具包,插件类文件): -
Entity targetEntity = (Entity)localContext.PluginExecutionContext.InputParameters["Target"];
QueryExpression query = new QueryExpression
{
EntityName = "relatedEntity",
Criteria =
{
Conditions =
{
new ConditionExpression("testOptionSetAttribute", ConditionOperator.Equal, 100000004),
new ConditionExpression("parentEntityId", ConditionOperator.Null)
}
}
};
EntityCollection resultsCollection = localContext.OrganizationService.RetrieveMultiple(query);
foreach (Entity result in resultsCollection.Entities)
{
result.Attributes["parentEntityId"] = targetEntity.Id;
localContext.OrganizationService.Update(result);
}
任何帮助,将不胜感激。
谢谢。
如果'targetEntity'真是一个1:N与'relatedEntity',然后'result.Attributes [ “parentEntityId”]关系'绝对必须是一个'EntityReference',不只是一个“Guid”。 – 2012-02-10 01:13:27