Uma das coisas que sempre vejo as listas de discussões é como compartilhar a transação com a base de dados entre múltiplos métodos de uma classe.
Pois bem, lendo o blog do time de ADO.NET, um dos integrantes da equipe postou exatamente sobre isso, mas agora já utilizando a classe TransactionScope do Namespace System.Transactions e com o auxílio de uma classe chamada DbConnectionScope que gerencia a conexão com a base de dados. Vale a pena dar uma olhada.