Tôi đang sử dụng NHibernate và có sự cố với truy vấn này ... Tôi có một Hạng mục mà tôi muốn tìm nạp bằng Id của nó. Tất cả đều tốt. Tuy nhiên, tôi cũng muốn một thuộc tính bool trên lớp Item được đặt thành true nếu một số điều kiện khác được thiết lập. Cụ thể thuộc tính này được đặt tên là IsMarked, cho biết Item được đánh dấu/stared/flagged cho người dùng đã yêu cầu nó chưa, và thông tin này được đặt trên một bảng cho biết mối quan hệ giữa Item và User.Giá trị cài đặt dựa trên bảng khác nhau trong truy vấn NHibernate
Hiện tại tôi đang tìm nạp Mục và sau đó tìm tham chiếu - cập nhật thuộc tính thành true nếu có thể tìm thấy tham chiếu. Thay vào đó, tôi có thể thực hiện điều này trong một truy vấn không?
var item = Session.Get<Item>(itemId);
var flaggedResult = Session.CreateCriteria<ItemWithUserFlag>()
.Add(Restrictions.Eq("User.Id", userId))
.Add(Restrictions.Eq("Item", item))
.List<ItemWithUserFlag>();
if (flaggedResult.Count > 0)
item.IsMarked = true;
return item;
như thế nào lớp học của bạn ánh xạ? Có sự liên quan nhiều đến nhiều giữa Người dùng và Hạng mục không? –
Tôi đang sử dụng Fluent cho ánh xạ. Có một mối quan hệ nhiều-nhiều được thể hiện trong một lớp riêng biệt ItemWithUserFlag. Người dùng không có mối quan hệ trực tiếp với Item và Item không có mối quan hệ trực tiếp với User. ItemWithUserFlag có một tham chiếu được thiết lập cho người dùng và mục. – stiank81