Có lệnh cập nhật hàng loạt tồn tại trong NHibernate không? Theo như tôi biết nó không. Vậy cách tốt nhất để xử lý tình huống này là gì? Tôi muốn làm như sau:Cập nhật hàng loạt trong NHibernate
- Fetch một danh sách các đối tượng (chúng ta hãy gọi cho họ một danh sách người dùng,
List<User>
) từ cơ sở dữ liệu - Thay đổi các thuộc tính của các đối tượng, (
Users.Foreach(User=>User.Country="Antartica"
) - Cập nhật mỗi mục lại riêng lẻ (
Users.Foreach(User=>NHibernate.Session.Update(User)
). - Gọi
Session.Flush
để cập nhật cơ sở dữ liệu.
Đây có phải là cách tiếp cận tốt không? Điều này sẽ dẫn đến rất nhiều chuyến đi khứ hồi giữa mã của tôi và cơ sở dữ liệu?
Bạn nghĩ sao? Hoặc là có một giải pháp thanh lịch hơn?
3: Tôi nghĩ rằng bạn không có nghĩa là cam kết, bạn có nghĩa là cập nhật. –
Yup, bạn nói đúng; Ý tôi là Update. – Graviton
Bạn nên xóa Bước 3 vì 'Session.Update' không" cập nhật từng mục trở lại ". Thay vào đó, NHibernate xem tất cả các thay đổi được thực hiện đối với các đối tượng và tự ghi các thay đổi vào cơ sở dữ liệu mà không cần phải nói. – yfeldblum