TransactionScope (and System.Transactions) use lightweight promotabble transactions. So you can avoid MSDTC unless your code requires it. EG if two seperate SqlConnection objects are open at the same time and enlist in the same transaction, then it will trigger promotion. But if the SqlConnections run one after the other, then they will share the same underlying connection and lightweight SQL Server transaction. See: System.Transactions Integration with SQL Server - ADO.NET | Microsoft Learn
Regards,
Oury