Comment utiliser les transactions dans DotNetNuke (enchevêtré avec L2S)?
-
07-07-2019 - |
Question
J'utilise L2S dans mon module. Le problème se produit lorsque j'utilise les entités DNN par défaut sur le même TransactionScope avec mon accès aux données L2S, puis je reçois une demande DTC que je souhaite éviter.
Comment puis-je partager la connexion / transaction pour les deux entités DNN et mon accès aux données L2S?
La solution
Malheureusement, comme indiqué ici - les transactions sont actuellement n'étant pas la partie importante de DNN (5.1.X), les opérations L2S ne doivent pas être empêtrées dans les opérations principales de DNN afin d'empêcher l'escalade des transactions.
Autres conseils
Je ne connais pas DNN, mais le datacontext L2S a un constructeur qui prend un SqlConnection (ainsi, un IDbConnection d’un SqlConnection) en tant que paramètre. Donc, si une connexion est déjà établie, transmettez-la simplement au contexte de données L2S lorsque vous créez une nouvelle instance.