Dapper & TransactionScope?

dapper transactionscope

Question

Je viens de commencer à jouer avec Dapper. Jusqu'ici je l'aime. Est-ce que dapper ne fonctionne pas avec TransactionScope ? J'ai remarqué que même si je n'appelle jamais TransactionScope.Complete alors mes modifications sont toujours validées dans la base de données. Si TransactionScope n'est pas pris en charge, existe-t-il des plans pour le prendre en charge? Sinon, vous devez utiliser la gestion des transactions traditionnelle (System.Transactions.Transaction)?

Mise à jour: Je viens de parler à Sam via Twitter. Ça devrait marcher. Je le mettrai à jour demain matin (au travail) avec les détails pour voir si quelqu'un peut comprendre pourquoi mes modifications sont encore commises sur la base de données, même si je n'ai jamais dit complet.

Réponse acceptée

C'était totalement de ma faute et de ne pas bien comprendre transactioncope. Une connexion n'est pas automatiquement inscrite dans transactioncope sauf si vous ouvrez la connexion dans le fichier de transactions:

Enrôlement automatique

  using (var scope = new TransactionScope())
      {
        con.Open();                                
         //update/delete/insert commands here
      }

Enrôlement manuel

    con.Open();
    using (var scope = new TransactionScope())
    {
       con.EnlistTransaction(Transaction.Current);  
       //update/delte/insert statements here
    }

Les détails peuvent être trouvés ici: Détails




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi