В моей базе данных есть таблица Person и таблица Event (вечеринки, встречи и т. Д.). Это отношение многие ко многим представлено через таблицу приглашений. Каждый человек может иметь много приглашений. Каждое событие может также иметь много приглашений.
Если я хочу получить список событий, на которые приглашен человек, я могу использовать этот запрос HQL:
IQuery query = Session.CreateQuery("SELECT i.Event from Invitation i where i.Person = :p");
query.SetParameter("p", person);
return query.List<Person>();
Как мне написать этот запрос с критериями NHibernate и расширениями Lambda?
Если бы я сделал что-то вроде:
ICriteria criteria = Session.CreateCriteria<Invitation>()
.Add(SqlExpression.CriterionFor<Invitation>(i => i.Person == person));
return criteria.List<Invitation>();
тогда это только дает мне список объектов Приглашения, через который мне пришлось бы пройти цикл, чтобы получить Событие для каждого. Я бы предпочел список объектов Event из запроса. Как мне это сделать?