4

我应该如何将 IDbConnection 和 IDbTransaction 与 Dapper 一起使用?

目前我只使用一个IDbConnection. 如下所示:

using (SqlConnection connection = new SqlConnection(connectionString)) 
{
    connection.Execute(@"insert Roles(Name) values (@name)", new { name = "Role" }); 
}

但有时我需要发送 2 个命令?我应该使用BeginTransationandEndTransaction吗?

4

1 回答 1

14

是的,如果您需要两个单独的命令是原子的并且一起失败,那么您应该使用事务。

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);
}
于 2012-03-23T22:55:56.313 回答