2009-09-17 6 views
1
MyDataContext context = new MyDataContext(); 

// do a lot of insert, deletes and updates 

context.SubmitChanges(); 

Tous les SQL générés et exécutés par SubmitChanged() seront-ils couverts par une transaction? Comment puis-je m'assurer qu'il est couvert par une transaction?Linq2SQL: SubmitChanges couverts par une transaction?

Mise à jour:

La raison pour laquelle je lui demandant que j'avoir un bug bizarre où je soupçonne une transaction n'a pas été utilisé.

La procédure est d'environ 500 insertions et une mise à jour finale sur un enregistrement. Parfois, la mise à jour (et peut-être quelques-uns de l'insert ...) n'est pas enregistrée dans la base de données.

(Transactions SQL ne figure pas dans ma sortie de débogage?)

+0

http://stackoverflow.com/questions/542525/transactionscope-vs-transaction-in-linq2sql Voir les réponses ayant déjà obtenu le plus de votes. La réponse acceptée ne dit pas toute l'histoire. –

Répondre

3

Si vous voulez que tout se produire dans une transaction utilise une étendue de transaction

http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx

+0

Linq2Sql va créer une transaction pour vous, pas besoin de jeter la confusion de TransactionScope dans le mélange. –

+1

+1. TransactionScope simplifie un peu le code car il ne nécessite pas de bloc try catch pour une restauration. –

2

créer un explicitement TransactionScope est sur nécessaire lorsque vous invoquez plusieurs fois SubmitChanges et que vous souhaitez inclure toutes les invocations dans une seule transaction.

Questions connexes