2010-05-17 2 views
0

Я использую NHibernate с Lambda Extensions, и я не могу понять, как фраза определенного типа запроса.Как я использую этот запрос в NHibernate с расширениями Lambda?

Мое приложение позволяет пользователям пометить других пользователей на фотографиях. Таким образом, существуют объекты Picture, и каждое изображение имеет один или несколько объектов Tag, и каждый объект Tag имеет один объект User.

Я реализую функцию поиска. Учитывая строку поиска, я хочу вернуть все изображения, чье имя содержит строку или, которые имеют любые теги с именем пользователя, имя которого содержит строку.

Я не знаю, как собрать этот запрос, или мне нужно сделать это с помощью подзапросов или псевдонимов. Каким будет правильный способ сделать это?

+0

Попробуйте подумать об этом в SQL, а затем перейдите в NHibernate Criteria. –

ответ

0

В Lamdba Я не знаю, но вы можете использовать псевдоним, чтобы искать в коллекции?

session.CreateCriteria<Picture>() 
    .CreateAlias("Tags", "tags") 
    .Add(
    Expression.Or(
     Expression.Eq("Name","term"), 
     Expression.Eq("tags.User.Name","term")));