Maison >développement back-end >C++ >Quelle est la façon la plus efficace de mettre à jour les enregistrements dans Entity Framework 5?
Meilleures pratiques pour les mises à jour des enregistrements Entity Framework 5
En mettant à jour les enregistrements dans Entity Framework 5, les développeurs sont souvent confrontés au choix de plusieurs méthodes, chaque méthode a ses avantages et ses inconvénients. Cet article explorera trois méthodes courantes et leurs limites, et proposera finalement la meilleure solution.
Méthode 1 : Charger les enregistrements originaux et mettre à jour les attributs un par un
Cette méthode nécessite d'abord de charger l'enregistrement d'origine, puis de mettre à jour manuellement chaque attribut modifié. Bien que cette approche offre une certaine flexibilité dans la spécification des propriétés à modifier, elle nécessite deux requêtes de base de données (une pour le chargement et une pour la mise à jour).
Méthode 2 : charger l'enregistrement d'origine et définir la valeur modifiée
Une approche plus efficace consiste à utiliser CurrentValues.SetValues
pour mettre à jour uniquement les propriétés modifiées. Toutefois, cette approche nécessite que la vue contienne toutes les propriétés d'enregistrement, ce qui peut avoir des implications en matière de sécurité pour les données sensibles.
Méthode 3 : Joindre l'enregistrement mis à jour et définir le statut sur Modifié
Pour minimiser le nombre de requêtes dans la base de données, vous pouvez ajouter l'enregistrement mis à jour et définir le statut sur Modified
. Bien que cette méthode ne nécessite qu'une seule requête, elle ne peut pas spécifier les propriétés à modifier et nécessite également que la vue contienne toutes les propriétés.
Meilleure solution
Afin de prendre en compte l'efficacité de la spécification des attributs, de la vue réduite et de la requête d'une base de données unique, la méthode suivante est recommandée :
Exemple de code :
<code class="language-csharp">db.Users.Attach(updatedUser); var entry = db.Entry(updatedUser); entry.Property(e => e.Email).IsModified = true; // 其他需要修改的属性 db.SaveChanges();</code>
Cette solution ajoute d'abord l'enregistrement mis à jour, puis modifie le drapeau IsModified
de l'attribut spécifique. De cette manière, on garantit que seuls les attributs attendus sont mis à jour tout en conservant l’efficacité d’une seule requête de base de données.
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!