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