一、事務操作實例
特別說明:
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; } }