2011-11-17 29 views
5

Ứng dụng khách quạ (IDocumentSession) không gửi bất kỳ thứ gì đến máy chủ cho đến khi SaveChanges được gọi. Vì vậy, nó có thể được coi là một thực hiện UnitOfWork, phải không?IDocumentSession.SaveChanges() vs Giao dịch

Tôi có đúng khi nghĩ rằng sự khác biệt duy nhất giữa SaveChangesTransaction.Commit là sau này có quay lại tất cả thay đổi nếu có điều gì đó không thành công trong cam kết không?

Trả lời

7

Nếu bạn đang thực hiện một thao tác đơn lẻ, không cần phải sử dụng giao dịch rõ ràng vì kết quả giao dịch ẩn là SaveChanges.

Nếu bạn sử dụng System.Transactions, bạn có thể thực hiện nhiều thao tác, nghĩa là nhiều SaveChanges bằng cùng một giao dịch. Raven sẽ quản lý các giao dịch qua http bằng cách sử dụng một tiêu đề yêu cầu.

Đọc thêm trong tài liệu: http://ravendb.net/documentation/docs-api-transactions

+0

Kul med andra svenska RavenDb nissar;) (nhận xét không nói nhiều, chỉ cần bỏ qua nếu bạn không phải là người Thụy Điển) – jgauffin

6

jgauffin, SaveChanges() hoạt động trong một giao dịch, vì vậy nếu bạn đang sửa đổi nhiều văn bản, tất cả trong số họ sẽ được cứu rỗi, hoặc không sẽ. Chúng tôi cũng hỗ trợ System.Transactions, nhưng thường thì không cần thiết.