Yaq*_*mad 2 keynotfoundexception query-expressions dynamics-crm-2011
我是CRM开发的新手.我有一个自定义实体"客户".该实体有一个名为"defaultcustomer"的字段,可以是TRUE或FALSE.我正在使用插件,我需要为所有"客户"将"defaultcustomer"设置为FALSE.我这样做如下:
事实:
我已经为实体"客户"本身注册了插件.因此,当实体"客户"更新时,插件将触发.
private void MakeAllNonDefault()
{
try
{
QueryExpression query = new QueryExpression("customer");
query.ColumnSet = new ColumnSet("defaultcustomer");
EntityCollection retrieved = service.RetrieveMultiple(query);
foreach (Entity myCustomer in retrieved.Entities)
{
myCustomer["defaultcustomer"] = false;
service.Update(myCustomer);
}
}
catch (Exception ex)
{
throw new InvalidPluginExecutionException("An error occurred in MakeAllNonDefault(): " + ex.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
错误: 它会在此行引发错误:
myCustomer["defaultcustomer"] = false;
System.Collections.Generic.KeyNotFoundException:
The given key was not present in the dictionary.
Run Code Online (Sandbox Code Playgroud)
该错误意味着特定字段不存在于属性集合中.在CRM中,仅包括已设置或更新的属性.
尝试类似的东西:
foreach (Entity myCustomer in retrieved.Entities)
{
if (myCustomer.Attributes.ContainsKey("defaultcustomer"))
{
myCustomer["defaultcustomer"] = false;
}
else
{
myCustomer.Attributes.Add("defaultcustomer", false);
}
service.Update(myCustomer);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7572 次 |
| 最近记录: |