У меня проблемы. Мне нужно выбрать из записей базы данных для людей с идентификаторами, которые находятся в списке externalIds. После этого мне нужно выбрать для каждого человека только 1 запись с новейшим StartTime. Я попытался, например, с SetProjection (свойство GroupProperty и Max), но в результате он возвращает мне только список StartTime, когда мне нужен список PersonnelPresence. Мой метод выглядит так:Критерии NHibernate - как правильно использовать группу по заявлению?
public IList<PersonnelPresence> GetLastPersonnelPresencesForPeopleExternalIds(IList<string> externalIds)
{
ICriteria criteria = Session.CreateCriteria(typeof(PersonnelPresence), "pp").CreateCriteria("pp.Person", "p")
.Add(Restrictions.In("p.ExternalId", externalIds.ToList()))
.SetProjection(Projections.ProjectionList()
.Add(Projections.GroupProperty("p.Id"))
.Add(Projections.Max("pp.StartTime")));
return criteria.List<Object>() as List<PersonnelPresence>;
}
Кто-нибудь знает, как решить мою проблему? Заранее спасибо.