/ / Qual é a prática recomendada para criar transações com vários objetos com Enterprise Library 5.0 - .net, sql-server, transações, biblioteca corporativa

Qual é a prática recomendada para criar transações com vários objetos com o Enterprise Library 5.0 - .net, sql-server, transações, biblioteca corporativa

Fundo:

Eu tenho um objeto que tem um número de propriedadesque são outros objetos. Em Salvar do objeto principal, insiro um registro no banco de dados e, em seguida, chamo o método Save dos sub objetos. O risco atual neste modelo é que, se o objeto principal for salvo no banco de dados, mas um dos subobjetos não for, os dados não refletirão um estado preciso.

Meu aplicativo .NET 4.0 usa o Enterprise Library 5.0 e os dados são armazenados em um banco de dados do SQL Server 2008. Gostaria de implementar o suporte a transações para que todos os objetos sejam salvos quando todas as salvações forem bem-sucedidas ou revertidas em caso de falha.

Questão:

Achei um artigo bom mas datado sobre o suporte a Transações no .NET 2.0 vs .NET 1.0 / 1.1, mas queria saber qual é a melhor prática atual para implementar o suporte a transações.

Respostas:

1 para resposta № 1

Acabei indo com System.Transactions.TransactionScope conforme descrito no artigo mencionado acima. Enterprise Library 3.0 e superior procura Transaction.Current ao se conectar ao banco de dados. Você não precisa passar informações de transação explicitamente.

using(TransactionScope scope = new TransactionScope())
{
/* Perform transactional work here */
//No errors-commit transaction
scope.Complete();
}