我正在嘗試更新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