Làm thế nào để bạn hỗ trợ đồng thời lạc quan/bi quan bằng cách sử dụng NHibernate?Làm thế nào để bạn đối phó với đồng thời trong NHibernate?
Trả lời
NHibernate, theo mặc định, hỗ trợ đồng thời lạc quan. Đồng thời bi quan, mặt khác, có thể được thực hiện thông qua phương pháp ISession.Lock()
.
Các vấn đề này được thảo luận chi tiết trong this document.
NHibernate hỗ trợ 2 loại đồng thời lạc quan.
Bạn có thể kiểm tra trường bẩn bằng cách sử dụng thuộc tính "optimistic-lock = dirty" trên phần tử "class" trong tệp ánh xạ hoặc bạn có thể sử dụng "optimistic-lock = version" (cũng là mặc định) . Nếu bạn đang sử dụng phiên bản, bạn cần cung cấp phần tử "phiên bản" trong tệp ánh xạ của bạn để ánh xạ tới một trường trong cơ sở dữ liệu của bạn.
Phiên bản có thể thuộc loại Int64, Int32, Int16, Ticks, Dấu thời gian hoặc TimeSpan và được tự động tăng lên khi lưu. Xem Chapter 5 trong tài liệu NHibernate để biết thêm thông tin.
Chương 5 của tài liệu hiện có tại đây: http://nhforge.org /doc/nh/en/index.html#mapping –
Bạn cũng có thể 'chỉ' theo cách thủ công so sánh số phiên bản (giả sử bạn đã thêm thuộc tính Phiên bản vào thực thể của mình).
Tối ưu hóa rõ ràng là tùy chọn duy nhất lành mạnh. Đôi khi tất nhiên, chúng ta phải đối phó với các tình huống điên rồ tuy nhiên ...
- 1. Làm thế nào để đối phó với các bản cập nhật đồng thời trong cơ sở dữ liệu?
- 2. Làm thế nào để Smalltalk đối phó với monkeypatching?
- 3. Làm thế nào để đối phó với thời gian chờ phiên trong các yêu cầu AJAX
- 4. làm thế nào để đối phó với unicode trong mako?
- 5. Làm thế nào để bạn đối phó với DDD và EF4
- 6. Làm thế nào để bạn đối phó với quyền sở hữu tệp trong git?
- 7. Làm thế nào để bạn đối phó với "siêu" generics trong java?
- 8. Làm thế nào để bạn đối phó với nhiều tệp mở cùng tên trong VisualStudio?
- 9. Làm thế nào để đối phó với các tập tin tạm thời trong ASP.NET?
- 10. Làm thế nào để đối phó với quản lý inept
- 11. Làm thế nào để đối phó với Eclipse CDT + Cygwin?
- 12. Làm thế nào để bạn đối phó với số lớn hơn UInt64 (C#)
- 13. Làm thế nào để xóa đối tượng con trong NHibernate?
- 14. NHibernate & WCF: Hiệu suất (sử dụng lại phiên) so với đồng thời (yêu cầu đồng thời)
- 15. Làm thế nào để đối phó với một lỗ hổng trong System.Data.DataTableExtensions.CopyToDataTable()
- 16. Đối phó với ngày tháng và thời gian trong R
- 17. làm thế nào để đối phó với các vị trí trong aC# dòng
- 18. Làm thế nào để đối phó với rò rỉ bộ nhớ trong RMagick trong Ruby?
- 19. Làm thế nào để đối phó với sự thay đổi tên người thay thế trong Mercurial
- 20. Làm thế nào để đối phó với nhiều chủ đề trong một lớp học?
- 21. Làm thế nào để đối phó với cập nhật bundler (Gemfile.lock) trong bối cảnh hợp tác?
- 22. Làm thế nào để đối phó với các giá trị thời gian hơn 24 giờ trong python?
- 23. Làm thế nào để đối phó với cảnh báo "phá hủy thời gian thoát" trong tiếng kêu?
- 24. Làm thế nào để đối phó với "IN" trong mệnh đề where trong Doctrine2
- 25. Làm thế nào để đối phó với bản ghi của số không trong R trong image.plot?
- 26. Làm thế nào để đối phó với các điều kiện chủng tộc trong đa luồng?
- 27. Làm thế nào để đối phó với API tương tác trong python
- 28. Làm thế nào để đối phó với giá trị danh sách trở lại trong ANTLR
- 29. Làm thế nào để đối phó với mảng (được khai báo trên ngăn xếp) trong C++?
- 30. Làm thế nào để đối phó với VARRAYs (Oracle 9i) trong JDBC?
Cảm ơn Jon vì đã trả lời nhanh :-) –
Giao dịch và tài liệu đồng thời ngay tại đây: http://nhforge.org/doc/nh/en/index .html # giao dịch –
Tài liệu hiện có tại đây: http://nhibernate.info/doc/nh/en/index.html#transactions –