2014-02-13 5 views
1

기사/블로그 집합에 대한 모든 연도와 월 목록을 얻으려고합니다.연도와 월별로 그룹을 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 수 예외 : 내가 nHibernate 수있는 다른 쿼리 방법 중 하나를 사용하여이 쿼리를 만들 수있는 방법은

System.NotSupportedException {"NewExpression"} 

있습니까?

SQL 프로젝트를 사용하고 YEAR (날짜)를 사용하지만 SQLite에서 실행되지 못했습니다. 가능하다면 데이터베이스에 의존 할 필요가 있습니다.

+0

어떤 버전의 NHibernate를 사용합니까? – hazzik

답변

4

누군가가이 질문에 비틀 거리면이 문제를 해결할 수 있습니다. 문제는에 의한 주문이었다. 이 문제를 해결하면 오류가 해결되었습니다.

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