In meinem System habe ich Aufgaben, die optional Kontakten zugewiesen werden können. In meiner Geschäftslogik habe ich also den folgenden Code:
if (_contactChanged) { task.Contact = contact; }
Wenn kein Kontakt angegeben wurde, wird die contact
Variable ist null. Dies ist angeblich um die Kontaktbeziehung zu löschen, wenn ich Änderungen übermittle, aber ich habe bemerkt, dass dies in 99 % der Fälle, in denen ich es tue, nicht geschieht (ich habe gesehen, dass es einmal passiert, aber nicht durchgängig, nachdem ich diesen Code immer wieder durchgegangen bin).
Bei der Fehlersuche habe ich festgestellt, dass _contactChanged
es true
und der interne Code wird nicht getroffen. Nachdem ich jedoch über task.Contact = contact;
Ich stelle fest, dass während contact
null ist, task.Contact
ist vom Typ
{System.Data.Entity.DynamicProxies
.Contact_4DF70AA1AA8A6A94E9377F65D7B1DD3A837851FD3442862716FA7E966FFCBAB9}
und ist noch mit den vorherigen Daten verknüpft.
Warum wird der Proxy nicht auf Null gesetzt, und wie kann ich das richtig hinbekommen?