Domanda

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.

È stato utile?

Soluzione

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()
                     });
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top