Sự khác biệt giữa SaveOrUpdate và Lưu/Cập nhật trong NHibernate là gì. Tại sao bạn không chỉ sử dụng SaveOrUpdate? Ngoài ra, điểm của SaveOrUpdateCopy là gì?Cập nhật SaveOrUpdate Vs và Lưu trong NHibernate
Trả lời
Chương 9 bao gồm tất cả những điều này tốt hơn tôi có thể:
http://nhibernate.info/doc/nh/en/index.html
Nhưng vách đá ghi chú:
Save()
mất một đối tượng mới mà không có một định danh và gắn nó vào phiên. Đối tượng sẽ là INSERT
'd.
Update()
lấy một đối tượng hiện có có số nhận dạng nhưng không có trong phiên và đính kèm nó vào phiên. Đối tượng sẽ là UPDATE
'd.
SaveOrUpdate()
xem mã nhận diện và quyết định những gì cần thiết ở trên.
SaveOrUpdateCopy()
đặc biệt trong đó nói rằng bạn có hai đối tượng có cùng số nhận dạng - một trong phiên và một đối tượng không có. Nếu bạn thử và update
thì không có gì trong phiên, ngoại lệ được ném bình thường (bạn hiện đang cố đính kèm hai đối tượng đại diện cho cùng một đối tượng liên tục cho phiên). SaveOrUpdateCopy()
sao chép trạng thái đối tượng không phiên sang trạng thái đối tượng phiên.
Tôi không chắc chắn bạn sẽ sử dụng NH như thế nào, nhưng đối với nhiều trường hợp, tất cả những gì bạn cần là Save()
. Phiên làm việc TẤT CẢ công việc cần thiết để biết những gì cần phải được cập nhật và chỉ cần Flush()
hoặc Commit()
làm mọi thứ bạn cần.
- 1. Hibernate saveOrUpdate không cập nhật
- 2. Cập nhật hàng loạt trong NHibernate
- 3. Tôi có phải tải/Nhận thực thể trước khi SaveOrUpdate trong Nhibernate không?
- 4. Chèn hoặc cập nhật hàng loạt NHibernate
- 5. Cập nhật NHibernate trên thuộc tính đơn cập nhật tất cả các thuộc tính trong sql
- 6. MongoDB C# collection.Save vs Insert + Cập nhật
- 7. Chọn và cập nhật trong một thủ tục đã lưu
- 8. Lưu hoặc cập nhật trong Groovy
- 9. NHibernate - CreateCriteria vs CreateAlias
- 10. Mẫu sao lưu cập nhật
- 11. NHibernate Session.Flush() Gửi các truy vấn cập nhật khi không cập nhật đã xảy ra
- 12. Sử dụng saveOrUpdate() trong Hibernate tạo ra kỷ lục mới thay vì cập nhật những cái hiện có
- 13. Đang cập nhật GUI: Runnables vs Messages
- 14. Cập nhật nhiều hàng LINQ vs SQL
- 15. thành thạo NHibernate - không cần thiết cập nhật
- 16. kiểm tra nhibernate với các sự kiện cập nhật
- 17. Nhibernate đang thực hiện cập nhật về lựa chọn?
- 18. NHibernate ISet Vs IList
- 19. NHibernate cập nhật hàng trước khi xóa nó?
- 20. Lightspeed vs NHibernate
- 21. Thủ tục lưu trữ và cập nhật EDMX
- 22. Cập nhật nguyên tử MySQL trong InnoDB vs MyISAM
- 23. Làm thế nào bạn có thể sao lưu của Hibernate saveOrUpdate trong JPA?
- 24. Danh sách vs Bộ vs Túi trong NHibernate
- 25. NHibernate Lưu loát và thuộc tính
- 26. Plugin Wordpress - Cập nhật Tự lưu trữ
- 27. NHibernate vs LINQ to SQL
- 28. Làm thế nào để nói với NHibernate rằng một kích hoạt cập nhật một bảng?
- 29. ADO.NET Entity Framework vs NHibernate
- 30. Hibernate saveOrUpdate behavior
Bạn thường không cần SaveOrUpdate() vì NHibernate theo dõi các thay đổi đối với mọi đối tượng được tải. Để cập nhật một đối tượng sử dụng Session.Get(), hãy thay đổi sau đó gọi Session.Flush(). –
Điều gì dễ đọc hơn hoặc có ý định tiết lộ trong đoạn mã sau đó: 'SaveOrUpdate()' hoặc 'Flush()'/'Commit()'? Hay nó không tạo ra sự khác biệt (ngữ nghĩa hay cách khác)? –
Xóa hoàn toàn phiên của bạn có thể không cần thiết. Nếu bạn cam kết một giao dịch hoặc phiên đi ra khỏi phạm vi/được xử lý các thay đổi sẽ tự động được lưu giữ (hoặc sớm hơn nếu chúng cần phải vì một số lý do, tạo id hoặc tương tự). Flush là ý định tiết lộ (với tôi) khi bạn * cần * để buộc các thay đổi tự động, vì đọc-ioslation hoặc một số esoterica khác, và chỉ tiếng ồn khác. Bất kỳ ai quen thuộc với NH cũng sẽ hiểu được 'Cập nhật 'tiềm ẩn cho các thực thể được đính kèm, vì vậy tôi có xu hướng nghĩ về cùng một câu lệnh' SaveOrUpdate' rõ ràng. –