Запрос критериев NHibernate - выберите различие с присоединенным объектом
У меня есть личность лица. У каждого человека есть страна, я хочу выбрать все страны, в которых есть люди. Этот критерий запроса возвращает все отдельные идентификаторы CountryID
criteria.SetProjection(Projections.Distinct(Projections.Property("Country")));
Как я могу изменить его, чтобы присоединиться и получить объект Country, а не только ID?
1 ответ
Решение
Любой простой способ - использовать подзапрос. То есть вы можете выбрать всю страну во внешнем запросе, где идентификатор страны соответствует внутреннему запросу.
Subqueries.PropertyIn(
"Country",
innerDetachedCriteriaWhichFindsCountriesWithPeopleAndProjectsCountryId)