Я пытаюсь обновить связанную запись в подключаемом модуле обновления перед операцией CRM 2011. Простой запрос извлекает набор связанных объектов на основе пары параметров, а затем каждый объект из результирующего запроса выполняет поиск в наборе связанных объектов. Тем не менее, при возникновении исключения генерируется предложение InvalidCastException. Пройдя по коду, каждое из значений выглядит корректно, Руководства, где ожидается, и т. Д. Я отключил другие плагины, которые могут включать в себя цель и связанные объекты, но проблема все еще сохраняется. Соотношение между targetEntity и relatedEntity равно 1: N. Я подтвердил, что эта проблема не в том, что атрибут ожидает EntityReference, а не Guid во время прохождения.
Ниже приведен код для плагина, в котором я заменил имена реальных сущностей / атрибутов на более очевидные прокси (он использует файл класса плагина для разработчика): -
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);
}
Любая помощь будет оценена.
Спасибо.