If you are like me and us are using an IRepository for Linq to SQL you’ll probably at some point need to be able to generate a Transaction.
As the IRepository saves records as it goes and not on a SubmitChanges() we’re going to have to use the Microsoft TransactionScope Class, from the System.Transactions (in System.Transactions.dll), which makes a code block transactional.
Here it is:
using (var transaction = new TransactionScope()) { try { //Do something here transaction.Complete(); } catch (Exception ex) { return; } }
It is also worth having a look at Implementing an Implicit Transaction using Transaction Scoping for further information on what you can do.
After playing with this for a while I found that you some times get a MSDTC error, to fixes this take a look at:
Fix MSDTC (Microsoft Distributed transaction coordinator) by Pongsathon Keng