SqlSugar-事务操作
一、事务操作实例
特别说明:
1.特别说明:在事务中,默认情况下是使用锁的,也就是说在当前事务没有结束前,其他的任何查询都需要等待
2.ReadCommitted:在正在读取数据时保持共享锁,以避免脏读,但是在事务结束之前可以更改数据,从而导致不可重复的读取或幻像数据。
//事务处理 using (SqlSugarClient db = SugarContext.GetInstance()) //开启数据连接 { db.CommandTimeOut = 30000;//设置超时时间 try { //db.BeginTran();//开启事务 //特别说明:在事务中,默认情况下是使用锁的,也就是说在当前事务没有结束前,其他的任何查询都需要等待 //ReadCommitted:在正在读取数据时保持共享锁,以避免脏读,但是在事务结束之前可以更改数据,从而导致不可重复的读取或幻像数据。 db.BeginTran(System.Data.IsolationLevel.ReadCommitted); //重载指定事务的级别 //特别说明:在事务操作中,对于自增长列的表,插入成功,又回滚的会占据一次自增长值 var id1 = db.Insert<UserInfo>(new UserInfo() { Name = "黎明" }); Console.WriteLine(id1); throw new Exception("事务执行异常"); var id2 = db.Insert<UserInfo>(new UserInfo() { Name = "网名" }); Console.WriteLine(id2); //提交事务 db.CommitTran(); } catch (Exception ex) { db.RollbackTran();//回滚 //throw ex; } }
更多参考: