C# 如何使用dapper回滚事务
我有这个:C# 如何使用dapper回滚事务,c#,.net,dapper,C#,.net,Dapper,我有这个: using (var con= new SqlConnection(ConfigurationManager.ConnectionStrings["sqlcon"].ConnectionString)) { try { // many transactions } catch
using (var con= new SqlConnection(ConfigurationManager.ConnectionStrings["sqlcon"].ConnectionString))
{
try
{
// many transactions
}
catch (Exception e)
{
con.BeginTransaction().Rollback();
}
}
这能行吗是我的问题。。我知道另一种方法是创建事务,然后打开它,然后回滚。您可以在using块中使用与SqlConnection的using块相同级别的变量
using (TransactionScope scope = new TransactionScope())
using (var con= new SqlConnection(ConfigurationManager.ConnectionStrings["sqlcon"].ConnectionString))
{
try
{
// many transactions
scope.Complete();
}
catch (Exception e)
{
// Not needed any rollback, if you don't call Complete
// a rollback is automatic exiting from the using block
// con.BeginTransaction().Rollback();
}
}
Dapper扩展了DbConnection,因此使用标准事务对象没有问题,但它更麻烦。(当然,您需要在代码开头声明事务,并将其用于回滚或commit@NoviceDeveloper请注意,所有dapper操作都接受ado.net事务作为可选参数;如果使用ado.net事务,请确保将其包含在calls@Steve标准的ado.net事务不是很简单吗htweight比环境事务更重要,如果环境事务中打开了多个连接,它将升级为分布式事务