Ich bin neu in CRM-Entwicklung. Ich habe eine benutzerdefinierte Entität "Kunde". Diese Entität hat ein Feld namens "defaultcustomer", das WAHR oder FALSCH sein kann. Ich arbeite an einem Plug-In, wo ich den "defaultcustomer" auf FALSE für alle "Kunden" einstellen muss. Ich mache es wie folgt:CRM 2011 KeyNotFoundException Ausnahme
FACTS:
ich das Plugin für die Entität „Kunde“ angemeldet haben selbst. Wenn also die Entität "Kunde" aktualisiert wird, wird das Plug-in ausgelöst.
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: Es wirft Fehler auf dieser Linie:
myCustomer["defaultcustomer"] = false;
System.Collections.Generic.KeyNotFoundException:
The given key was not present in the dictionary.
Dieser Fehlertyp geht verloren, wenn Sie die frühzeitige Bindung verwenden und die zurückgegebenen Entitäten in Instanzen Ihrer Entität "Customer" umwandeln. –