LINQ to SQL supports Transactions, but there is no method directly off of the DataContext to initialize one. Fortunately, that functionality is just a simple extension method away!
public static class DataContextExtensions
{
public static IDbTransaction BeginTransaction(
        this DataContext dataContext, 
IsolationLevel isolationLevel = IsolationLevel.Unspecified)
    {
        if (dataContext.Connection.State != ConnectionState.Open)
dataContext.Connection.Open();
        return dataContext.Transaction = dataContext.Connection
.BeginTransaction(isolationLevel);
}
}
public class TransactionTests
{
[Fact]
public void Example()
    {
using (var dataContext = new FutureSimpleDataContext())
        using (dataContext.BeginTransaction())
        {
            // TODO: Stuff!
}
}
}
Enjoy!
Tom
 
 
No comments:
Post a Comment