NHibernate에서 QueryOver를 사용하여 간단한 SQL (SQL Server 2005 사용)을 수행하려고합니다. 쿼리는 일련 번호가 항목 목록에서 반복적으로 사용 된 횟수를 계산 한 다음 1 회만 사용하여 일련 번호를 선택하는 것입니다. 1을 초과하는 일련 번호를 사용하고 싶지 않으므로 별개의 일련 번호는 필요하지 않습니다.QueryOver에서 SQL Count() 사용 방법
이 작업을 수행하는 SQL 쿼리는 다음과 같습니다
SELECT SERNUM, expr1
FROM (SELECT SERNUM, COUNT(SERNUM) AS expr1
FROM ITEM
GROUP BY SERNUM) AS derivedtbl_1
WHERE (expr1 = 1)
지금까지 QueryOver는 사용하여 수행 한 내용 :이 코드는 SQL (가 카운트를 넣어 좋아하지 않는다 불구을 (생성
var query = session.QueryOver<Item>()
.Select(Projections.ProjectionList()
.Add(Projections.Count<Item>(x => x.Sernum))
.Add(Projections.GroupProperty("Sernum"))).List();
) 열을 목록에 추가). 나는 그것이 수행하는 SQL 생성 1. 여기서 말하는만을 반환 할) 수 (에 의해 생성 된 데이터의 열을 액세스하는 방법을 잘 모르겠어요입니다 :
SELECT count(this_.SERNUM) as y0_,
this_.SERNUM as y1_
FROM ITEM this_
GROUP BY this_.SERNUM
내가 난 잘 모르겠어요 이것은 올바른 방향으로 접근하고 있지만 누군가가 나를 가리킬 수 있기를 바랍니다.
.Add (Projections.Count- (X => x.Sernum)이 .as 같은 것을 수행 항목을 얻을 수
같은 것을 생성한다 "count")) – Firo