Каков наилучший способ получить совокупные результаты от NHibernate? - PullRequest
2 голосов
/ 14 октября 2008

Например, я пытаюсь получить минимальную дату, максимальную дату и сумму в разных случаях. Я пытаюсь избежать жесткого кодирования строки SQL или циклического перебора IList для получения этих значений.

Ответы [ 2 ]

2 голосов
/ 17 октября 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 *1007* (2/3 пути вниз)

2 голосов
/ 14 октября 2008

Вы можете выполнять прямые запросы через NHibernate. Или добавьте дополнительный порядок по информации, чтобы результирующие объекты были в порядке с помощью интересующего вас параметра. Порядок по убыванию и ваш 0-й элемент - это то, что вы хотите для макс и мин. и т. д. и т. д. Существует несколько способов снятия шкуры с кошки.

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