5
我正在使用NHibernate,並有這個查詢的問題...我有一個類,我想要使用它的ID獲取。一切都好。不過,如果設置了其他條件,我還希望將Item類的bool屬性設置爲true。具體來說,這個屬性被命名爲IsMarked,告訴Item是否被標記爲/請求它的用戶,並且這個信息被設置在提供Item和User之間關係的表上。基於NHibernate查詢中的不同表設置值
目前我正在提取Item,然後找到引用 - 如果可以找到引用,則將屬性更新爲true。我可以在一個查詢中做到這一點嗎?
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;
如何你的類映射?用戶和項目之間是否存在多對多的關聯? – 2011-01-25 20:35:27
我正在使用Fluent進行映射。在單獨的類ItemWithUserFlag中表示了多對多關係。用戶與項目沒有直接關係,項目與用戶沒有直接關係。 ItemWithUserFlag將參考設置爲用戶和項目。 – stiank81 2011-01-27 15:16:37