Tôi không rõ liệu tôi có cần sử dụng TransactionScope hay DbContext.SaveChanges() là đủ để thực hiện giao dịch của tôi bao gồm nhiều hoạt động CRUD. Tôi đang sử dụng SQL Server trong backend.EF5 DbContext.SaveChanges có xử lý giao dịch commit và rollback không?
Trả lời
Nếu bạn đang gọi SaveChanges()
nhiều lần và muốn khôi phục tất cả những thay đổi đó, có bạn sẽ muốn sử dụng số TransactionScope
. Nếu bạn đang gọi SaveChanges()
một lần trong ngữ cảnh, tất cả các thay đổi của bạn sẽ được đẩy đến cơ sở dữ liệu cùng một lúc trong giao dịch đằng sau hậu trường.
Chỉ cần xác nhận cần thiết cho trường hợp sau: Trong trường hợp tôi gọi SaveChanges() một lần cho nhiều CRUD hoạt động, tôi phải vứt bỏ đối tượng DbContext để khôi phục giao dịch. – Jas
Tôi không nghĩ rằng việc xử lý 'DbContext' sẽ quay trở lại giao dịch. Nếu đó là trường hợp bạn có thể muốn xem xét các tùy chọn quá tải cho 'SaveChanges()' mà bạn có thể vô hiệu hóa cam kết tự động của giao dịch và bạn sẽ chịu trách nhiệm gọi 'AcceptAllChanges()'. http://msdn.microsoft.com/en-us/library/bb739065.aspx –
Nhưng liên kết msdn mà bạn cung cấp cho biết rằng ObjectContext.SaveChanges() api hiện đã lỗi thời. Ngoài ra, ObjectContext.SaveChanges() sẽ khôi phục toàn bộ giao dịch trong trường hợp ngoại lệ được SQL Server ném ra. Ngoài ra, không có cách nào đơn giản hơn để khôi phục các hoạt động CRUD của tôi bằng DbContext? – Jas
- 1. Có phải giao dịch ROLLBACK không?
- 2. xử lý lỗi giao dịch mysql
- 3. Lớp giao dịch .NET và T-SQL TRAN COMMIT và ROLLBACK
- 4. Hibernate save() và rollback giao dịch
- 5. SQLException - Giao dịch BEGIN/COMMIT không khớp
- 6. Giao dịch Rollback với LOCK BẢNG
- 7. PHP & mySQL: Mã đơn giản để thực hiện giao dịch - Commit & Rollback
- 8. lỗi khóa trùng lặp không hủy/rollback giao dịch mysql
- 9. Xử lý giao dịch Postgresql với java
- 10. viết một giao dịch trong t-sql và xử lý lỗi
- 11. Máy chủ SIT COMMIT không có Tran | Giao dịch?
- 12. Giao dịch Rollback từ kích hoạt
- 13. Xử lý lỗi giao dịch NHibernate
- 14. xử lý lỗi giao dịch khi đối tượng không tồn tại
- 15. Yêu cầu giao dịch ROLLBACK không có lỗi GIAO DỊCH BEGIN tương ứng trong máy chủ sql
- 16. Xử lý lỗi trong giao dịch ActiveRecord?
- 17. MSMQ nhận được với giao dịch - rollback không làm cho thông báo có sẵn trở lại
- 18. giao dịch rollback nếu cam kết lợi nhuận lỗi
- 19. NServiceBus và NHibernate - Trình xử lý tin nhắn và giao dịch
- 20. Có một rollback bên trong một INSERT SAU hoặc UPDATE SAU KHI kích hoạt rollback toàn bộ giao dịch
- 21. giao dịch mùa xuân YÊU CẦU vs REQUIRES_NEW: Rollback Transaction
- 22. Python-mysql: khi rollback một cách rõ ràng giao dịch
- 23. Ngăn chặn giao dịch rollback trong JBoss + Hibernate
- 24. MySql có thể rollback một giao dịch sql trên nhiều bảng không?
- 25. Có sự khác biệt giữa cam kết và rollback trong một giao dịch chỉ có lựa chọn không?
- 26. Trình biên dịch có xử lý các biến giao diện ngầm được ghi lại không?
- 27. Node.js + postgres quản lý cơ sở dữ liệu giao dịch
- 28. NHibernate, giao dịch và TransactionScope
- 29. Oracle - Giao dịch, phân đoạn rollback và thông số undo_retention hoạt động như thế nào?
- 30. Delphi có thể được sử dụng để tạo và xử lý một trình xử lý giao thức tùy chỉnh không?
Liên quan: http://stackoverflow.com/questions/6028626/ef-code-first-dbcontext-and-transactions –