Группа nHibernate по годам и месяцам с подсчетом

Я пытаюсь получить список всех лет и месяцев для набора статей/блогов.

var query = (from article in _session.Query<Article>()
            where article.Parent == articleList && article.PublishOn != null
            group article by new {article.PublishOn.Value.Year, article.PublishOn.Value.Month}
            into entryGroup
            orderby entryGroup.Key.Year descending, entryGroup.Key.Month descending
            select new ArchiveModel
            {
                Year = entryGroup.Key.Year,
                Month = entryGroup.Key.Month,
                Count = entryGroup.Count()
            });


return query.ToList();

Вышеприведенное компилируется, но nHibernate выдает:

System.NotSupportedException {"NewExpression"}

Есть ли способ создать этот запрос, используя любой из других методов запроса в nHibernate?

Мне удалось заставить его работать с помощью SQL Projects и с помощью YEAR (дата), но тогда это не работало в SQLlite. Мне нужно, чтобы он был независимым от базы данных, если это возможно.


person izip    schedule 13.02.2014    source источник
comment
Какую версию NHibernate вы используете?   -  person hazzik    schedule 14.02.2014


Ответы (1)


Удалось исправить это, если кто-то наткнется на этот вопрос. Проблема заключалась в заказе. Извлечение этого решило ошибку:

var query = (from article in _session.Query<Article>()
                     where article.Parent == articleList && article.PublishOn != null
                     group article by new { article.PublishOn.Value.Year, article.PublishOn.Value.Month } into entryGroup
                     select new ArchiveModel
                     {
                         Year = entryGroup.Key.Year,
                         Month = entryGroup.Key.Month,
                         Count = entryGroup.Count()
                     });
person izip    schedule 13.02.2014