2012-07-27 3 views
2

Je fais référence à cette question SO: Bulk inserts taking longer than expected using DapperMettre en œuvre une TransactionScope légère

et à ce commentaire @SamSaffron à cette question:

« TransactionScope ne un tas de bêtises DTC vous ne se soucient généralement pas à propos de, l'éviterait à moins que j'avais besoin de cette fonctionnalité, il est assez facile de rouler votre propre contexte attaché au thread de stockage local "

Je sais comment lancer mon propre TransactionManager en utilisant une transaction attachée à un [ThreadStatic] variables, mais est-il un moyen fiable pour émule la TransactionScope de sorte que les commandes solliciterons automatiquement ma transaction? Le produit final sera une portée de transaction avec n'importe quelle plomberie MSDTC.

Répondre

1

Oui, voir mon projet TextMetal, l'exemple de code, et faire attention à l'espace de noms de plomberie. Si vous avez des questions, envoyez-moi un courriel. Aucun MSDTC léger de la main, juste ADO.NET, un modèle d'unité de travail, et un code d'accès aux données bien conçu!

+0

+1 il est une implémentation agréable et intéressant, mais (peut-être que je me trompe), je peux avoir plus d'une transaction dans une seule unité de travail. Si je reçois votre code correctement, vous avez une relation un par un avec la transaction. écheveaux de toute façon, mor einterested dans le piratage de la classe étendue de transaction –

+0

Une unité de travail, par définition, implique une transaction. On dirait vraiment ce que vous dites que vous avez plusieurs connexions à des sources de données en une seule unité de travail, donc vous avez besoin des transactions distribuées. Ma mise en œuvre n'assume aucune transaction MSDTC. –

Questions connexes