2012-12-16 2 views
0

"as"를 추가 한 특정 열을 내 기준에 추가하고 싶습니다. 의미 : XYZ에서 0 AS ID를 선택하십시오 ...Nhibernate 기준 선택 대상

기준을 사용하여 어떻게 할 수 있습니까?

감사합니다.

var projections = Projections.ProjectionList(); 
projections 
    .Add(Projections.Property("EntityId")) 
    .Add(Projections.Property("Code")) 
    .Add(Projections.Constant(0), "ID"); // const projection 

var list = session 
    .CreateCriteria<MyEntity>() 
    .SetProjection(projections) // projections 
    .SetResultTransformer(new AliasToBeanResultTransformer(typeof(MyEntity))) 
    .List<MyEntity>(); 

처음 두 (ENTITYID, 코드) 속성 매핑 대표 :

답변

2

NHibernate에 계획 당신이 찾고있는 기능입니다. ID 필드 내 열쇠입니다 : 마지막 투사 "ID는" 또는 매핑되지 않은 재산 "ID"를 매핑에 설정 될 수있다 ... MyEntity 클래스

+0

내 문제가 약간 다릅니다의 CONST입니다. 나는 두 테이블 (one-to-many) 사이의 outer join을하고 있는데,이 Id는 키 컬럼이다. 자, id 필드에 0 값이 있어야합니다. 예를 들면 다음과 같습니다. SELECT as 0 Id from XYZ LEFT OUT JOIN ZZZ ON XYZ.ID = ZZZ.ID – user1894419

+0

오해하지 마십시오.하지만 무엇을하려고합니까? 위의 SQL 문은 XYZ 테이블 rowcount만큼 행 수가 0 인 하나의 열 ID를 반환합니다 ... BTW, 내 대답은 여전히 ​​적합합니다 ... 단지 하나의'Projections.Constant (0), "ID") ' –

+0

이렇게하면 원래의 ID 중 하나 인 두 개의 열을 얻을 수 있습니다. 왼쪽 외부 조인 - UnitOfWork.Session.CreateCriteria () .CreateAlias ​​("ZZZ", "zzz" , JoinType.LeftOuterJoin)) 및 0 개의 값을 가지는 1 개의 열 그러나, 그 원래의 ID가 0으로 가치가 있어야합니다 ... – user1894419