2012-04-15 4 views
4

SelectList()에 전달할 수있는 함수에서 멤버 목록을 가져 오는 방법이 있습니까?NHibernate QueryOver 가져 오기 함수에서 SelectList (x)

var dtos = repository.QueryOver<MicrofilmExportProcessed>() 
        .SelectList(getMembersFromFunc()) 
        .List<MicrofilmExportProcessed>(); 

내가 selectList의의 입력 매개 변수와 동일한 형식을 반환하는 방법을 만드는 시도했지만 아직도 날을 알려줍니다

그래서 그 대신이 같은이

var dtos = repository.QueryOver<MicrofilmExportProcessed>() 
        .SelectList(list => list 
         .Select(x => x.Member1).WithAlias(() => dto.Member1) 
         .Select(x => x.Member2).WithAlias(() => dto.Member2) 
         .Select(x => x.Member3).WithAlias(() => dto.Member3)) 
        .List<MicrofilmExportProcessed>(); 

이렇게 뭔가를하고의 입력 유형이 유효하지 않습니다. 내가 무엇을 놓치고 있는지 모르겠다.

답변

8

뭔가

Func<QueryOverProjectionBuilder<InvoiceDto>, QueryOverProjectionBuilder<InvoiceDto>> GetList() 
{ 
    InvoiceDto dto = null; 
    return list => list.Select(w => w.Client).WithAlias(() => dto.Client); 
} 

추천하고

return Session.QueryOver<InvoiceDto>() 
    .SelectList(GetList()) 
    .TransformUsing(Transformers.AliasToBean<InvoiceDto>()) 
    .List<InvoiceDto>(); 
과 같이 호출
관련 문제