In my understanding, if you plan to work with one connection and need a transaction to ensure the completion or rollback of DML, go to a specific connection transaction that will have less weight than external System.Transaction transactions, which are more universal and help coordinate with MSDTC, if necessary, since you can open multiple connections of various types.
using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlcon"].ConnectionString)) { using(var txn = con.BeginTransaction()) { try { txn.Commit(); } catch (Exception e) { txn.Rollback(); } } }
source share