Heim > Backend-Entwicklung > C++ > Entity Framework 4: Wann sollte „AttachObject' vs. „AddObject' verwendet werden?

Entity Framework 4: Wann sollte „AttachObject' vs. „AddObject' verwendet werden?

Mary-Kate Olsen
Freigeben: 2025-01-10 14:02:42
Original
452 Leute haben es durchsucht

Entity Framework 4: When to Use `AttachObject` vs. `AddObject`?

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:

var existingPerson = new Person { Name = "Joe Bloggs" };
ctx.Persons.Attach(existingPerson);
existingPerson.Name = "Joe Briggs";
ctx.SaveChanges();
Nach dem Login kopieren

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:

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();
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage