Các proxy nhibernate có thực hiện công việc thông minh nào để thực hiện theo dõi thay đổi hiệu quả không? Hay nó chỉ hỗ trợ những gì Entity Framework gọi theo dõi thay đổi dựa trên ảnh chụp nhanh?NHibernate thực hiện theo dõi thay đổi như thế nào?
Trả lời
Nó dựa trên ảnh chụp nhanh.
Khi tải một thực thể, trạng thái của nó được lưu trữ trong phiên làm đối tượng [].
Khi xả, trạng thái hiện tại được chuyển đổi thành đối tượng [] và so sánh với trạng thái ban đầu để xác định thuộc tính nào bị bẩn.
Điều này hiệu quả hơn vì nhiều lý do. Một trong số đó là bạn không cần cần proxy để theo dõi thay đổi. Khác là, nếu bạn đặt một thuộc tính cho một giá trị khác và sau đó hoàn nguyên nó, thực thể sẽ được coi là không bẩn, do đó tránh được một cuộc gọi DB không cần thiết.
NHibernate và EntityFramework theo dõi các thay đổi theo những cách rất khác nhau. Entity Framework theo dõi các thay đổi trong thực thể. NHibernate theo dõi các thay đổi trong phiên.
Thay đổi theo dõi trong thực thể yêu cầu nhiều bộ nhớ hơn (vì bạn đang lưu trữ các giá trị trước cũng như các giá trị sau). Các thực thể có thể giữ lại sự theo dõi thay đổi ngay cả sau khi ngắt kết nối khỏi ObjectContext.
Thay đổi theo dõi trong phiên tổng thể hiệu quả hơn, nhưng nếu bạn ngắt kết nối một thực thể khỏi phiên, bạn sẽ mất theo dõi thay đổi.
Tuyên bố này có đúng không? Theo như tôi biết, EF sử dụng một bộ theo dõi thay đổi được gọi là để theo dõi các thay đổi thực thể. Không có cơ sở hạ tầng theo dõi thay đổi nào được chứa trong thực thể. – Andreas
- 1. jQuery theo dõi DOM như thế nào?
- 2. Sử dụng Delphi để theo dõi các thay đổi được thực hiện cho thư mục?
- 3. Theo dõi thay đổi trong thuộc tính
- 4. Thực hiện theo dõi thay đổi đối tượng trong ứng dụng WCF MVC N-Tier
- 5. Theo dõi thay đổi trong Visual Studio
- 6. Theo dõi thực thi Javascript trong Chrome - cách thực hiện?
- 7. Theo dõi các thay đổi về mã theo thời gian
- 8. Theo dõi thay đổi: svn + latex
- 9. Có cách nào để xóa cơ chế theo dõi thay đổi cho một thực thể không?
- 10. Entity Framework POCO Thay đổi Chiến lược Theo dõi
- 11. Làm thế nào thay đổi theo dõi công trình trong Entity Framework
- 12. thay đổi theo dõi trong biểu mẫu chiến thắng C#
- 13. Cách theo dõi ngày thay đổi trong Java
- 14. Cách theo dõi thay đổi đối tượng kinh doanh?
- 15. Khung thực thể: Thay đổi theo dõi trong SOA với cách tiếp cận POCO
- 16. JPA: Ý tưởng để theo dõi sự tiến hóa/thay đổi của các thực thể
- 17. Làm thế nào để thực hiện theo dõi chuột trong Jfreechart?
- 18. Biến theo dõi hoặc thay đổi bộ nhớ trong Xcode?
- 19. Thực hiện băm bản ghi cơ sở dữ liệu để theo dõi xem bản ghi đã thay đổi hay không
- 20. Theo dõi thay đổi API công cộng của C++ lib
- 21. Dữ liệu Khung thực thể bộ nhớ cache và theo dõi các thay đổi của nó?
- 22. Theo dõi/theo dõi của HABTM theo dõi/theo dõi
- 23. NHibernate - Thay đổi loại phụ
- 24. Theo dõi các thay đổi trong Active Directory bằng C#
- 25. Haskell đã thay đổi như thế nào?
- 26. theo dõi các thay đổi trong (các) tệp trong thời gian thực
- 27. Làm cách nào để theo dõi các thay đổi/thay đổi chỉ cục bộ bằng git-svn?
- 28. Làm thế nào để sửa đổi các tác vụ theo dõi grunt dựa trên tệp đã thay đổi?
- 29. Các trang web như Hubspot theo dõi các liên kết trong nước như thế nào?
- 30. Người dùng theo dõi như twitter ở Django, bạn sẽ làm như thế nào?
Bạn đang nói về ghi nhật ký kiểm tra, nơi thay đổi được ghi lại hoặc quản lý thay đổi đầy đủ với khả năng hoàn nguyên về phiên bản trước đó của thực thể? – DanK
Nếu thực thể có nhiều thuộc tính ORM nên phát hành câu lệnh cập nhật cho cơ sở dữ liệu chỉ với các thuộc tính đã thay đổi. Trong LINQ TO SQL, nó biết rằng các thuộc tính đã thay đổi hoặc không thông qua giao diện INotifyPorpertyChanging/Changed (mặc dù nó không phải là yêu cầu, trong trường hợp nó rơi trở lại theo dõi thay đổi dựa trên ảnh chụp nhanh, nghĩa là nó so sánh mọi thuộc tính để tìm ra). – Alice