Best Practice DBContext: chaque HTTP demande un DBContext
Dans l'application ASP.NET Core, la création d'une nouvelle instance DBContext pour chaque demande HTTP est largement recommandée.
Évitez les problèmes de cache de données et l'amélioration des performances
DBContext peut mettre en cache les données. DBContext utilisant un seul mode limitera le cache de données à l'étendue d'une seule demande, réduira l'appel de base de données, améliorant ainsi les performances.
L'avantage de chaque demande a dbContext
Affaires commerciales uniques: Les opérations multiples sont exécutées dans un DBContext pour faciliter le traitement des transactions et assurer l'intégrité des données.
Code simplifié:
La classe qui modifie les données n'a besoin que d'appeler - , de réduire la complexité du code et d'éviter la responsabilité de gérer DBContext.
Partage de l'entité:
L'entité peut facilement passer dans la plage de demande, car elles proviennent toutes du même DBContext. -
Les inconvénients du transitoire DBContext
_context.SaveChanges()
- Bien qu'il soit possible d'enregistrer DBContext en tant que service transitoire, cela peut entraîner les problèmes suivants:
Suivi des changements manuels:
Chaque objet doit appeler
pour enregistrer les changements, augmenter la complexité et violer le principe des responsabilités uniques.
Limite de portée de l'entité:
L'entité ne peut pas laisser la portée de la classe qui les a chargés et ne peut pas être utilisée dans d'autres classes.
Gestion de la version:
Libérez correctement L'instance DBContext nécessite un mécanisme de domaine ou un traitement manuel supplémentaire. -
Autres solutions facultatives
context.SaveChanges()
-
Utilisez dbContextFactory pour un contrôle explicite: Injecter DBContextFactory pour permettre à la logique métier de contrôler explicitement la création et la version de DBContext pour offrir une plus grande flexibilité.
- L'unité de gestion des conteneurs: Laissez le conteneur DI gérer DBContext, maintenez la logique métier simple et abstraction du processus de création, de libération et de soumission.
Décorations des affaires:
Le dispositif décoratif peut être appliqué au programme de traitement de commande pour assurer la gestion correcte des transactions et la soumettre uniquement lorsqu'il est réussi.
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!
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn