Question

I am trying to get a list of all Years and Months for a set of articles/blogs.

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();

The above compiles but nHibernate throws:

System.NotSupportedException {"NewExpression"}

Is there a way I can create this query using any of the other query methods in nHibernate?

I did manage to get it working using SQL Projects and using YEAR(date) but then this didn't run in SQLlite. I need it to be database agnostic if possible.

Was it helpful?

Solution

Managed to fix this if anyone stumbles across this question. The problem was the order by. Taking this out solved the error:

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()
                     });
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top