2014-03-28 2 views
0

NHibernate를 사용하고 Group By에서 반환 된 행 수를 계산해야합니다.NHibernate 카운트 그룹 수

그룹 별 명세서에 적어도 두 개의 열이 있어야 함은 중요합니다. 나는 다른 데이터베이스를 가지고 있기 때문에 곧바로 SQL을 피하고 싶다. 한 번에 모든 통계를 수집하고 싶기 때문에 MultiQuery 또는 MultiCriteria 명령을 보내고 싶습니다 (요구 사항은 아님). 나는 또한 매우 클 수 있기 때문에 Group By에 의해 만들어진리스트를 반환하는 것을 피하고 싶다. 여러 메소드 (HQL, QueryOver, Criteria)를 시도했습니다. 불행히도 아무 것도 작동하지 않는 것 같습니다.

나는이 이미지와 같은 테이블이 :이 특정 쿼리가 반환 내가 쿼리가이

SELECT count(*) FROM (SELECT * FROM Table t WHERE t.A = 1 GROUP BY t.B, t.C) 

처럼 보일 것 기대 http://i.imgur.com/4HreWWD.png

enter image description here

3

+0

게시 한 SQL이 실행되지 않습니다 (내부 쿼리에서 't.A'를 선택할 수 없습니다. 이는 'group by' 절의 일부가 아니기 때문입니다) –

답변

0

Linq을 사용하면 다음과 같이 시도 할 수 있습니다.

var result = from t in Table // <-- session.Query<Table>() to get queryable 
      where t.A == 1 
      group t by new { t.B, T.C } into g 
      select g.Count(); 

cs 파일에 NHibernate.Linq 네임 스페이스를 추가하십시오.