Вопрос нуба: как составить критерий на счет ассоциации? - PullRequest
1 голос
/ 15 апреля 2010

Я начинаю с NHibernate.

У меня есть тип с именем Person, который имеет коллекцию Address.

Как мне получить:

Все люди, имеющие как минимум 2 адреса

с использованием ICriteria? Заранее спасибо.

1 Ответ

1 голос
/ 15 апреля 2010

Для этого вам нужно использовать подзапросы.

Address alias = null;
ICriteria criteria = personsCriteria.CreateCriteria<Person>(x => x.Address, () => alias);
var addressCount = DetachedCriteria.For<Address>();
addressCount.SetProjection(Projections.RowCount());
addressCount.Add<Address>(x => x.User.Id == alias.Id);
criteria.Add(Subqueries.Eq(2, addressCount));

Я использую лямбда-расширения ICriteria. Вы можете посмотреть на них здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...