Entity Framework 4-Objektverwaltung: Detaillierte Erläuterung der Methoden ObjectContext.AddObject und Attach
Entity Framework 4 bietet zwei Methoden zum Verwalten von Objekten in einem Kontext: ObjectContext.AddObject
und ObjectSet.AddObject
zum Hinzufügen neuer Objekte; ObjectContext.Attach
zum Anzeigen vorhandener Objekte; Obwohl die Namen ähnlich sind, spielen sie im Objektlebenszyklusmanagement sehr unterschiedliche Rollen. ObjectSet.Attach
ObjectContext.AddObject und ObjectSet.AddObject: Die Geburt von Objekten
Verwenden Sie und ObjectContext.AddObject
, wenn Sie mit neuen Entitäten arbeiten. Diese Methoden fügen dem Kontext Objekte hinzu, die noch nicht in der Datenbank vorhanden sind. Die neu hinzugefügte Entität erhält einen temporären EntityKey und einen hinzugefügten EntityState. Nach dem Aufruf von ObjectSet.AddObject
erkennt das Framework diese Objekte als Entitäten, die in die Datenbank eingefügt werden müssen. SaveChanges
ObjectContext.Attach und ObjectSet.Attach: Verbindung zu vorhandenen Objekten
Im Gegensatz zu werden AddObject
und ObjectContext.Attach
für Objekte verwendet, die bereits in der Datenbank vorhanden sind. ObjectSet.Attach
Anstatt den EntityState auf „Added“ zu setzen, wird er auf „Unchanged“ gesetzt, was anzeigt, dass das Objekt seit dem Anhängen an den Kontext unverändert bleibt. Mit Attach
gekennzeichnete Entitäten werden in der Datenbank gefunden, indem ihre EntityKey-Werte abgeglichen werden, und beim Aufruf von Attach
entsprechend aktualisiert oder gelöscht. SaveChanges
Ein praktisches Anwendungsbeispiel der Attach-Methode
wird zum Erstellen neuer Entitäten verwendet, während AddObject
nützlich ist, wenn mit vorhandenen Objekten gearbeitet wird. Um beispielsweise eine vorhandene Personenentität mit einer vorhandenen Adressentität im Kontext zu verbinden: Attach
<code class="language-csharp">var existingPerson = ctx.Persons.SingleOrDefault(p => p.Name == "Joe Bloggs"); var myAddress = ctx.Addresses.First(a => a.PersonID != existingPerson.PersonID); existingPerson.Addresses.Attach(myAddress); // 或: myAddress.PersonReference.Attach(existingPerson); ctx.SaveChanges();</code>
-Vorgang stellt sicher, dass die Entität „Adresse“ als vorhandene Entität erkannt und mit der Entität „Person“ verbunden wird, was korrekte Datenbankaktualisierungs- oder Löschvorgänge ermöglicht. Attach
Das obige ist der detaillierte Inhalt vonAddObject vs. Attach in Entity Framework 4: Wann sollte jede Methode verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!