In meiner Anwendung habe ich den folgenden Code ...
%Vor%Dieser Code ruft eine Methode für ein DataManager-Objekt auf, das Entity Framework verwendet ...
%Vor%Der Einsatz dieses Codes funktioniert einwandfrei. Aber wenn ich versuche, ein Update durchzuführen, erhalte ich einen Fehler, der besagt: "Ein Objekt mit einem Null-EntityKey-Wert kann nicht an einen Objektkontext angehängt werden."
Es tritt in dieser Codezeile auf: entities.Attach (userInfo);
Was ich versuche zu erreichen, ist, einen Rundflug in die Datenbank zu vermeiden, nur um den Datensatz auszuwählen, an dem ich später Änderungen vornehmen und aktualisieren werde, um so zwei Rundreisen zur Datenbank zu machen.
Irgendwelche Ideen, was schief läuft oder wie ich das besser erreichen könnte?
Danke.
Scheint so, als ob Sie EF 4.1+ verwenden.
Sie müssen EF mitteilen, dass Ihre Entität aktualisiert werden soll (Änderungsstatus):
P.S. Sie müssen Attach
nicht explizit aufrufen. Es ist unter der Haube gemacht.
Aktualisieren :
basierend auf Ihren Kommentaren verwenden Sie EF 4.0. Hier ist, was Sie tun müssen, um Ihr Objekt wie in EF 4.0 geändert anzuhängen:
Sie können die Methode Attach
nicht verwenden. Von Ссылка :
Wenn mehr als eine Entität eines bestimmten Typs denselben Schlüsselwert hat, löst das Entity Framework eine Ausnahme aus. Um zu vermeiden, dass die Ausnahme auftritt, verwenden Sie die Methode AddObject , um die gelöschten Objekte anzuhängen, und ändern Sie dann den Status entsprechend.
Tags und Links c# entity-framework entity-framework-4