Entity Framework Core Tutorial 交易
介紹
在Entity Framework中,當您調用SaveChanges()以插入,刪除或更新數據到數據庫時,實體框架將在事務中包裝該操作。
- 事務允許以原子方式處理多個數據庫操作。
- 如果事務已提交,則所有操作都已成功應用於數據庫。
- 如果事務回滾,則不會將任何操作應用於數據庫。
在EF 6和EF Core中,您可以在單個事務中使用多個SaveChange。您可以使用DbContext.Database
API來開始,提交和回滾事務。
以下示例顯示了兩個SaveChanges()操作以及在單個事務中執行的LINQ查詢。
using (var context = new MyContext()) { using (var transaction = context.Database.BeginTransaction()) { try { var customer = context.Customers .Where(c => c.CustomerId == 2) .FirstOrDefault(); customer.Address = "43 rue St. Laurent"; context.SaveChanges(); var newCustomer = new Customer { FirstName = "Elizabeth", LastName = "Lincoln", Address = "23 Tsawassen Blvd." }; context.Customers.Add(newCustomer); context.SaveChanges(); transaction.Commit(); } catch (Exception) { transaction.Rollback(); } } }
閱讀更多: 交易