Ответ 1
Надеюсь, что это поможет:
http://msdn.microsoft.com/en-us/magazine/cc300805.aspx
Для тех, кто не знаком с TransactionScope, он является частью пространства имен System.Transactions, новым для Microsoft®.NET Framework 2.0. System.Transactions предоставляет инфраструктуру транзакций, полностью интегрированную в .NET Framework, включая, но не ограничиваясь, ADO.NET. Классы Transaction и TransactionScope являются двумя наиболее важными классами в этом пространстве имен. Как следует из этого вопроса, вы можете создать экземпляр TransactionScope, а операции ADO.NET, выполняемые в рамках этого TransactionScope, будут зачислены автоматически (вы также можете получить доступ к текущей транзакции через статическое свойство Transaction.Current):
using(TransactionScope scope = new TransactionScope()) { ... // all operations here part of a transaction scope.Complete(); }