Я написал класс TransactionContext, который создается на прикладном уровне и отправляется на бизнес-уровень и уровень данных, что позволяет использовать вложенные транзакции.Теперь я должен решить: 1. Должен ли я использовать явные транзакции и позволить каждой функции вызывать, фиксировать или откатывать транзакцию при необходимости?2. Я могу запустить транзакцию неявно, когда TransactionContext создан, и позволить вложенным методам только откатывать
Теперь я бы использовал второй подход, потому что код проще: не нужно начинать, фиксировать или откатывать в каждом методе,просто установите флаг отката для транзакции и пусть только самый верхний метод беспокоится о коммите или откатеПроблема в том, что я не уверен, является ли хорошая идея обернуть весь трафик базы данных в транзакции.
Каковы возможные негативные эффекты от обертывания всех вызовов базы данных внутри транзакции?
Моя настройка - ASP.NET appliction и база данных MSSQL Server.Возможно, что приложение и база данных будут на разных серверах, если это что-то, что влияет на решение.