dapper mysql 事务_.NET[C#]Dapper中如何使用事务进行数据库的操作?
问题描述当前有需求,在C#程序开发中需要使用Dapper对数据库的多个表分别进行写入操作,这些操作是在一个C#执行方法中的,所以涉及到数据库的事务,在Dapper中应该如何处理呢?方案一Dapper 对数据库操作的事务代码:using System.Transactions;....using (var transactionScope = new TransactionScope()){DoYo
问题描述
当前有需求,在C#程序开发中需要使用Dapper对数据库的多个表分别进行写入操作,这些操作是在一个C#执行方法中的,所以涉及到数据库的事务,在Dapper中应该如何处理呢?
方案一
Dapper 对数据库操作的事务代码:
using System.Transactions;
....
using (var transactionScope = new TransactionScope())
{
DoYourDapperWork();
transactionScope.Complete();
}
方案二using (var connection = GetOpenConnection())
using (var transaction = connection.BeginTransaction())
{
connection.Execute(
"INSERT INTO data(Foo, Bar) values (@Foo, @Bar);", listOf5000Items, transaction);
transaction.Commit();
}
方案三using System.Transactions;
// 确保数据库连接已打开
using (var transactionScope = new TransactionScope())
{
try
{
long result = _sqlConnection.ExecuteScalar(sqlString, new {Param1 = 1, Param2 = "string"});
transactionScope.Complete();
}
catch (Exception exception)
{
// 记录错误日志
_logger.Error(exception, $"Error encountered whilst executing SQL: {sqlString}, Message: {exception.Message}")
// 重新抛出异常
throw;
}
}
更多推荐
所有评论(0)