Например, я пытаюсь получить минимальную дату, максимальную дату и сумму в разных случаях. Я пытаюсь избежать жесткого кодирования строки SQL или перебора IList для получения этих значений.
Как лучше всего получить совокупные результаты от NHibernate?
Ответы (2)
Вы можете выполнять прямые запросы через NHibernate. Или добавьте дополнительный порядок по информации, чтобы результирующие объекты были упорядочены с помощью интересующего вас параметра. Порядок убывания, а ваш 0-й элемент - это то, что вам нужно для максимума и минуты. и т.д. и т.п. Есть несколько способов снять шкуру с спящего кота.
person
mspmsp
schedule
14.10.2008
Я думал, что в Criteria API может быть что-то, чего мне не хватало. Спасибо за совет. Отлично сработало с родом!
- person Mark Struzinski; 14.10.2008
Если вам нужны запросы для отчетов, используйте прогнозы.
Что-то типа:
Session.CreateCriteria ( typeof ( Order ) )
.Add ( Restrictions.Between ( "DateReceived" , today.AddMonths ( -1 ) , today ) )
.CreateAlias ( "Lines" , "lines" )
.SetProjection (
Projections.ProjectionList ( )
.Add ( Projections.Sum ( "lines.TotalCost" ) )
.Add ( Projections.Avg ( "lines.TotalCost" ) )
.Add ( Projections.GroupProperty ( "Customer" ) )
) ;
Дополнительную информацию можно найти в документации Nhibernate (это 2/3 пути вниз)
person
kͩeͣmͮpͥ ͩ
schedule
17.10.2008