Flowchart · Unit of Work trong ABP
SaveChangesAsync ghi xuống DB, CompleteAsync mới commit
Vòng đời một Unit of Work ambient trong ABP
Interceptor mở UoW, InsertAsync ghi vào change tracker, SaveChangesAsync đẩy SQL nhưng chưa commit; nếu có exception thì rollback toàn bộ, nếu không thì CompleteAsync commit rồi mới chạy callback OnCompleted.
TRANSACTION CỦA UOW · ĐANG MỞ
KHÔNG
CÓ
CHỈ SAU COMMIT
UoW ambient tự mở
interceptor · IUnitOfWorkEnabled
InsertAsync
change tracker
SaveChangesAsync
ghi xuống DB, chưa commit
Có exception
phía sau?
CompleteAsync
save lần cuối + commit
OnCompleted
email · notification
Rollback toàn bộ
kể cả phần đã SaveChanges
SaveChangesAsync chỉ đẩy SQL xuống database.
Transaction vẫn mở, lỗi phía sau rollback cả phần này.
CHÚ GIẢI
Bước
Rẽ nhánh
Đường commit
Transaction đang mở
© tiennhm