I understand that it works when the transaction scope is bound to only one connection. Often, because its best practice to open communication late and close early. a situation may arise where the scope covers two compounds. These scripts are not supported in sql azure.
An example of where it might not work; taking the example yr; Assuming MyDataContext.GetDataContext () returns a new instance of the connection.
using (var tx = new TransactionScope(TransactionScopeOption.RequiresNew, new TransactionOptions() { IsolationLevel = IsolationLevel.ReadCommitted } )) { try{ DoSomething();
These links should give you some pointers as well
source share