小巧玲珑。 IDbConnection和IDbTransaction

时间:2012-03-23 22:32:38

标签: dapper idbconnection

我应该如何在Dapper中使用IDbConnection和IDbTransaction?

目前我只使用IDbConnection。如下:

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

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

1 个答案:

答案 0 :(得分: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);
}