一些項目中,會涉及到事務的寫法,比如訂單相關,訂單成功,會涉及到產品的庫存和賬戶金額的一些信息變動,當然,如果整個流程成功,那是沒什麼問題,關鍵是如果中間某一步驟出現bug了,那之前已執行的一些變動就要回滾回去,所以就不可避免的用到事務的寫法。以前只是在資料庫中會涉及到事務寫法 最近做一些財務方面的 ...
一些項目中,會涉及到事務的寫法,比如訂單相關,訂單成功,會涉及到產品的庫存和賬戶金額的一些信息變動,當然,如果整個流程成功,那是沒什麼問題,關鍵是如果中間某一步驟出現bug了,那之前已執行的一些變動就要回滾回去,所以就不可避免的用到事務的寫法。以前只是在資料庫中會涉及到事務寫法
最近做一些財務方面的平臺開發,開發過程中就涉及到事務相關的處理。當時,想起事務處理的時候就一身冷汗,難道就只能去鑽研下SQL寫法了?後來,因為不想去折騰,搜一下,好吧,果然有C#的事務處理解決法案,很簡單,Oh,My God,以前白學了,這都沒瞭解到。
using (TransactionScope transaction = new TransactionScope())//使用事務
{
try
{
// 代碼塊
transaction.Complete();//就這句就可以了。
}
catch (Exception ex)
{
}
}
這個rollback就不需要了,如果異常了,整體不會執行。
而且像一般 像倉儲模式的底層寫法,也不用擔心,單獨生命的DbContext也是一樣的。不過建議底層使用同一個DbContext的聲明。