對於一個ORM框架,支持事務操作是必須的。EF Code-Frist本身就是支持事務的。
我們的每一次SaveChanges就是一個事務操作,只需要在所有更改都完成后,調用這個方法就可以了。
如果你不願意,網上還有人給出了手動的開啟事務的代碼(我沒有測試過):
DbConnection con = ((IObjectContextAdapter)ctx).ObjectContext.Connection; con.Open(); using (var tran = con.BeginTransaction()) { // 這里才是事務中的代碼 tran.Commit(); } con.Close();
以上都是針對一個DbContext,也就是一個數據庫的時候,如果操作涉及到多個數據庫,還是使用分布式事務操作比較靠譜。
關於分布式事務,請移步我的另一篇文章:.NET分布式事務處理