Instance DBContext: une demande Web une?
Concept de conception
Pour créer une instance DBContext indépendante pour chaque demande Web pour chaque application Web. Par rapport à l'utilisation d'une seule instance DBContext pour l'ensemble de l'application, cette méthode présente de nombreux avantages.
Avantages
Domaine d'acteur: Chaque demande Web s'exécute dans son propre domaine, afin d'atteindre une limite de transaction claire. Cela simplifie le traitement d'erreur et garantit l'intégrité des données en limitant l'impact de l'opération de défaillance dans la demande actuelle.
Isolement:
Chaque demande Web a son propre contexte de base de données pour empêcher les conflits de données entre les demandes simultanées. Ceci est particulièrement important dans plusieurs utilisateurs ou processus qui accédaient à la même base de données. -
Effacer la couche: en gérant les instances DBContext dans le domaine de la demande Web, la logique métier et le découplage de la couche d'accès aux données sous-jacent. Cela rend le code plus modulaire et plus facile à entretenir.
-
scènes applicables
- Pour chaque demande Web pour utiliser une seule instance DBContext, elle s'applique aux scénarios d'application suivants:
La cohérence des données est cruciale et il est nécessaire de limiter la transaction en une seule demande.
Le volume d'accès à la concurrence de la base de données est très élevé et l'isolement est essentiel pour prévenir les conflits de données.
La logique métier est compliquée et se sépare clairement entre l'accès aux données et la logique d'application.
Les limites de l'instance du transitoire DBContext
-
Bien que vous enregistrez théoriquement DBContext en tant que transitoire (c'est-à-dire que chaque objet est une instance), cela peut entraîner les problèmes suivants: -
- Modifiez la perte:
Chaque objet a sa propre instance DBContext et doit être conservé par
à conserver. Si cette étape est ignorée, des modifications seront perdues.
Portée de l'entité: L'entité chargée par une instance DBContext ne peut pas être utilisée dans le contexte d'une autre instance. Cela compliquera le code et provoquera des problèmes de performances.
Propriété contextuelle:
Afficher les instances DBContext devient plus compliquée, et il doit être traité explicitement ou éliminer automatiquement à la limite de la demande.
-
Conclusion
context.SaveChanges()
L'utilisation d'une seule instance DBContext pour chaque demande Web présente des avantages évidents dans la cohérence des données, l'isolement et la maintenance du code. Après avoir pesé les avantages et les inconvénients, cette méthode est fortement recommandée pour l'intégrité des données et simultanément. -
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!