Heim >Backend-Entwicklung >C++ >Entity Framework 4: Wann sollte „AttachObject' vs. „AddObject' verwendet werden?
Entity Framework 4: Beherrschen von AddObject
und Attach
Eine effektive Nutzung des Entity Framework hängt vom Verständnis der unterschiedlichen Rollen von ObjectSet.AddObject
und ObjectSet.Attach
ab. Während AddObject
neue Entitäten einfügt, verwaltet Attach
bestehende. Die Situationen, die Attach
erfordern, können jedoch nuanciert sein.
Ein wichtiger Anwendungsfall für Attach
betrifft vom Kontext losgelöste Entitäten. Dies geschieht häufig nach dem Abrufen einer Entität und dem anschließenden Schließen des Kontexts. Um diese Entität erneut zur Änderung zu aktivieren, verwenden Sie Attach
:
<code class="language-csharp">var existingPerson = new Person { Name = "Joe Bloggs" }; ctx.Persons.Attach(existingPerson); existingPerson.Name = "Joe Briggs"; ctx.SaveChanges();</code>
Dadurch wird eine UPDATE
-Anweisung generiert, wodurch ein redundanter Datenbankabruf vermieden wird.
Eine weitere wertvolle Anwendung von Attach
ist die Verbindung bestehender, kontextbezogener Entitäten, denen automatische Beziehungen fehlen. Betrachten Sie eine Person
-Entität mit einer Addresses
-Navigationseigenschaft (eine Sammlung von Address
-Entitäten). Wenn Sie sowohl Person
- als auch Address
-Objekte geladen haben, ihre Beziehung jedoch nicht hergestellt ist, bietet Attach
die Lösung:
<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); ctx.SaveChanges();</code>
Hier Attach
wird die Beziehung aktualisiert, ohne die Entitäten selbst zu ändern.
Das obige ist der detaillierte Inhalt vonEntity Framework 4: Wann sollte „AttachObject' vs. „AddObject' verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!