在create(post post)上注册了一个插件。它有效,但之后我在表单上添加了两个字段。在创建时,我正在更新表单的字段值。它有效,但在比较结果实体属性时失败:
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);
答案 0 :(得分:0)
您明确地将属性的值转换为字符串,而该字符串在属性集合中很可能不存在。检查返回的实体属性集合中是否存在名为new_membername
的属性,或使用Microsoft.Xrm.Client
库中的帮助程序方法安全地获取属性值。
if (sales.GetAttributeValue<string>("new_membername") ==
UpdateSales.GetAttributeValue<string>("new_membername"))
{
index = index + 1;
}
您可能还想重新考虑比较逻辑,因为您最终可能会比较空值,这可能不是您想要的。