Как сформулировать этот запрос в NHibernate с Lambda Extensions?

Я использую NHibernate с Lambda Extensions, и я не могу понять, как сформулировать конкретный тип запроса.

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

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

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


person Brian Kendig    schedule 17.05.2010    source источник
comment
попробуйте подумать об этом в SQL, а затем вернуться к критериям NHibernate.   -  person Mauricio Scheffer    schedule 18.05.2010


Ответы (1)


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

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