4

Dapper で IDbConnection と IDbTransaction を使用するにはどうすればよいですか?

現時点では、IDbConnection. 次のようなもの:

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

しかし、時には 2 つのコマンドを送信する必要がありますか? と を使用する必要がBeginTransationありEndTransactionますか?

4

1 に答える 1

14

はい、2 つの別個のコマンドをアトミ​​ックにして一緒に失敗させる必要がある場合は、トランザクションを使用する必要があります。

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 に答える