我正在使用NHibernate,遇到了这个查询的问题...我有一个名为Item的类,想要通过它的ID来获取它。一切都很好。然而,如果设置了其他条件,我还想在Item类上设置一个布尔属性为true。具体来说,这个属性被命名为IsMarked,告诉用户是否将该项目标记/星号/标记为请求它的用户,并且此信息设置在给出Item和User之间关系的表上。
目前,我正在获取Item,然后查找引用——如果找到引用,则将属性更新为true。我能否在一个查询中完成这个操作?
目前,我正在获取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;