Что является наилучшей практикой для создания транзакций с несколькими объектами с помощью Enterprise Library 5.0 - PullRequest
1 голос
/ 24 января 2012

Фон:

У меня есть объект, у которого есть ряд свойств, которые являются другими объектами.При сохранении основного объекта я вставляю запись в базу данных, а затем вызываю метод Save для дочерних объектов.Текущий риск в этой модели заключается в том, что если основной объект сохраняется в базе данных, а один из подобъектов - нет, то данные не будут отражать точное состояние.

Мое приложение .NET 4.0 использует Enterprise Library 5.0, и данные хранятся в одной базе данных SQL Server 2008.Я хотел бы реализовать поддержку транзакций, чтобы либо все объекты сохранялись, когда все сохранения были успешными, либо откатывались при сбое.

Вопрос:

Я нашел хорошую, но устаревшую статью о поддержке транзакций в .NET 2.0 против .NET 1.0 / 1.1, но хотел знатьВ настоящее время лучшая практика заключается в реализации поддержки транзакций.

1 Ответ

1 голос
/ 24 января 2012

Я закончил с System.Transactions.TransactionScope, как описано в статье, упомянутой выше.Enterprise Library версии 3.0 и выше ищет Transaction.Current при подключении к базе данных.Вам не нужно явно передавать информацию о транзакции.

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