Да, если вам нужно, чтобы две отдельные команды были атомарными и не работали вместе, вам следует использовать транзакцию.
using (new TransactionScope(TransactionScopeOption.Required))
{
connection.Execute(...);
connection.Execute(...);
}
Или, если вы хотите использовать BeginTransaction
и передать его, вы также можете сделать:
using (var transaction = connection.BeginTransaction())
{
connection.Execute(sql1, params1, transaction);
connection.Execute(sql2, params2, transaction);
}