Значение настройки на основе другой таблицы в запросе NHibernate

Я использую NHibernate, и у меня проблемы с этим запросом ... У меня есть класс Item, который я хочу получить, используя его идентификатор . Все хорошо. Однако я также хочу, чтобы для свойства bool в классе Item было установлено значение true, если установлено какое-либо другое условие. В частности, это свойство называется IsMarked, сообщает, помечен ли элемент / отмечен / помечен для пользователя, который его запросил, и эта информация устанавливается в таблице, дающей связь между элементом и пользователем.

В настоящее время я извлекаю элемент, а затем нахожу ссылку - обновляя свойство до значения 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; 
5
задан stiank81 27 January 2011 в 15:17
поделиться