我是CRM開發新手。 我有一個自定義實體「客戶」。該實體有一個名爲「defaultcustomer」的字段,可以是TRUE或FALSE。我正在開發一個插件,我需要爲所有「客戶」設置「defaultcustomer」爲FALSE。我這樣做如下:CRM 2011 KeyNotFoundException異常
事實:
我已經註冊爲實體「客戶」本身的插件。所以當實體「客戶」更新時,插件會觸發。
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());
}
}
ERROR: 它輕視這一行錯誤:
myCustomer["defaultcustomer"] = false;
System.Collections.Generic.KeyNotFoundException:
The given key was not present in the dictionary.
如果您使用早期綁定並將您的返回實體投射到您的客戶實體的實例,則此類錯誤消失。 – 2012-03-28 19:52:40