Dapper是一种轻量级的ORM框架,具有高效便捷等特点所以很受广大开发者的厚爱。特别是他的自动映射功能小编真的爱不释手。
但是之前开发项目大都是简单操作最近在开发过程中需要用到同时操作一些列sql命令。因此“事物”成了救命稻草。
总结代码如下:
public class Test
{
/// <summary>
/// 提供数据库连接
/// </summary>
/// <returns></returns>
public static IDbConnection GetConnection()
{
return new SqlConnection("server=....;database=...;uid=...;pwd=...");
}
/// <summary>
/// 测试事物接口
/// </summary>
/// <returns></returns>
public bool FuncTest()
{
//第一条sql
string sql1 = "select max(id) from table1";
//第二条命令
string sql2 = "xxxxxxxxx";
using (IDbConnection conn = GetConnection())
{
conn.Open();
IDbTransaction transaction = conn.BeginTransaction();
try
{
conn.ExecuteScalar<int>(sql1, null, transaction);
conn.ExecuteScalar<int>(sql2, null, transaction);
//提交前就可以事物提交多个操作
transaction.Commit();
return true;
}
catch (Exception ex)
{
transaction.Rollback();
return false;
}
}
}
}总结如下:
1.启用事物前打开链接;
2.依次执行多个操作;
3.执行之后要提交;
4.失败之后要回滚;
5.使用事物要谨慎因为会对表加锁影响吞吐量;