Framework de l'entité (EF)
SaveChanges(false)
Comparaison avec les transactions AcceptAllChanges()
est généralement responsable de la création et de la gestion des transactions. En passant SaveChanges()
à , puis en appelant SaveChanges()
lorsqu'il n'y a aucune erreur, EF garantit que les modifications suspendues sont soumises dans une transaction ou en arrière. false
AcceptAllChanges()
Cependant, cette méthode peut causer des problèmes dans certains cas:
Transaction de roulement:
Lorsqu'une anomalie se produit lors de l'exécution de la transaction, la transaction doit être annulée pour maintenir l'intégrité de la base de données. Bien que la méthode permette un traitement d'erreur personnalisé, les transactions se termineront toujours lorsque la méthode dépasse la plage. Si l'erreur se produit après l'appel , la modification sera toujours affichée dans la base de données.
Liste: SaveChanges(false)
La colonne d'identification est automatiquement générée et distribuée par la base de données pendant l'insertion d'enregistrement. Si l'opération d'insertion échoue pendant la transaction, il peut y avoir un écart dans la séquence d'identification, qui peut affecter l'insertion ultérieure. AcceptAllChanges()
AcceptAllChanges()
est utilisée, elle peut avoir des problèmes dans EF car la suppression des changements dans un contexte peut affecter le résultat de la transaction dans ce contexte. Quand utiliser SaveChanges (FALSE) et AcceptAllChanges ():
Malgré ces avertissements, la méthode est la plus efficace dans la situation qui nécessite des transactions distribuées dans plusieurs contextes. En conservant les modifications insurmistes, il autorise les erreurs et les enregistrements de journal avant de soumettre ou de rouler.
TransactionScope
Exemple: SaveChanges(false)
AcceptAllChanges()
Dans cet exemple, si ou rencontre des erreurs après l'appel SaveChanges(false)
, vous pouvez faire reculer la transaction et vous pouvez enregistrer les changements insurmistes de chaque contexte pour une enquête plus approfondie. AcceptAllChanges()
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!