Плагин с сообщением, которое я пытаюсь обновить при создании сообщения.
Зарегистрирован плагин на создание (после операции). Это работает, но после этого я добавил два поля в форму. При создании я обновляю значения полей формы. Это работает, но не удается при сравнении атрибута объекта результата:
QueryExpression QrySales = new QueryExpression() { EntityName = Sales.LogicalName, ColumnSet = new ColumnSet(true) };
EntityCollection SalesCollec = Service.RetrieveMultiple(QrySales);
foreach (Entity sales in SalesCollec.Entities)
{
if (sales["new_membername"].ToString() == UpdateSales["new_membername"].ToString())
{
index = index + 1;
}
}
UpdateSales["new_index"] = index + 1;
Service.Update(UpdateSales);
1 ответ
Вы явно приводите значение атрибута к строке, которая очень хорошо не может существовать в коллекции атрибутов. Либо проверьте, если атрибут с именем new_membername
существует в возвращенной коллекции атрибутов сущности или использовать вспомогательные методы в Microsoft.Xrm.Client
библиотека для безопасного извлечения значений атрибутов.
if (sales.GetAttributeValue<string>("new_membername") ==
UpdateSales.GetAttributeValue<string>("new_membername"))
{
index = index + 1;
}
Возможно, вы захотите пересмотреть свою логику сравнения, так как в итоге вы можете сравнить нули, что, вероятно, не то, что вы хотите, я думаю.