Maison >développement back-end >C++ >Entity Framework 4 : Quand utiliser « AttachObject » ou « AddObject » ?
Entity Framework 4 : Maîtriser AddObject
et Attach
L'utilisation efficace d'Entity Framework dépend de la compréhension des rôles distincts de ObjectSet.AddObject
et ObjectSet.Attach
. Pendant que AddObject
insère de nouvelles entités, Attach
gère celles existantes. Toutefois, les situations nécessitant Attach
peuvent être nuancées.
Un cas d'utilisation clé pour Attach
implique des entités détachées du contexte. Cela se produit souvent après la récupération d’une entité et la fermeture ultérieure du contexte. Pour réengager cette entité pour modification, utilisez Attach
:
<code class="language-csharp">var existingPerson = new Person { Name = "Joe Bloggs" }; ctx.Persons.Attach(existingPerson); existingPerson.Name = "Joe Briggs"; ctx.SaveChanges();</code>
Cela génère une instruction UPDATE
, évitant une récupération redondante de la base de données.
Une autre application précieuse de Attach
consiste à connecter des entités existantes liées au contexte qui manquent de relations automatiques. Considérons une entité Person
avec une propriété de navigation Addresses
(une collection d'entités Address
). Si vous avez chargé les objets Person
et Address
mais que leur relation n'est pas établie, Attach
fournit la solution :
<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>
Ici, Attach
met à jour la relation sans modifier les entités elles-mêmes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!