2017-07-01 1 views
0

Mon application utilise sql server avec dapper et asp..net core 2 aperçu 2.am en utilisant le modèle de référentiel avec base de données unique. J'ai écrit un modèle de référentiel pour chaque entité. dans la couche de gestion, j'injecterai chaque référentiel à l'aide d'un objet de connexion distinct dans la portée de la transaction. Ce modèle est-il une transaction distribuée? Ou le serveur SQL traite comme une transaction locale. Parce que .net core ne supporte pas les transactions distribuées? Ou puis-je utiliser le framework .net au lieu de cela? s'il vous plaît quelqu'un m'aider.net core 2 aperçu 2 portée de la transaction

Répondre

2

Ce serait une transaction distribuée, et même si .NET Core l'a permis, c'est une mauvaise pratique. Au lieu d'injecter une seule SqlConnection pour les deux référentiels et gérer la transaction sur SqlConnection. Si vous n'avez pas TransactionScope, ou EF, vous devrez probablement utiliser explicitement TSQL BEGIN TRANSACTION/COMMIT sur SqlConnection, sinon SqlCommand doit être explicitement enrôlé (ce que vous ne voulez pas faire).