views:

287

answers:

3
MyDataContext context = new MyDataContext();

// do a lot of insert, deletes and updates

context.SubmitChanges();

Will all SQL genereated and executed by SubmitChanged() be covered by a transaction? How do I make sure it's covered by a transaction?

Updated:

The reason why I asking it that I having a weird bug where I suspect a transaction hasn't been used.

The procedure is about 500 inserts and a final update on one record. Sometimes the update (and perhaps a few of the insert...) isn't registered in the database.

(SQL Transactions isn't shown in my debug output?)

+3  A: 

it is, and the whole thing will roll back if it fails

How to: Submit Changes to the Database (LINQ to SQL)

Ahmed Khalaf
+1  A: 

If you want everything to happen within a transaction use a Transaction Scope

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

Shiraz Bhaiji
Linq2Sql will create a transaction for you, no need to throw the confusion of TransactionScope in the mix.
Michael Hart
+1. TransactionScope simplifies code a bit as it doesn't require a try catch block for a Rollback.
blesh
+1  A: 

Explicitly creating a TransactionScope is only needed when you are invoking SubmitChanges multiple times and want all of the invokations to be included in one single transaction.

Konamiman