2011-11-09 3 views
0

.ToFuture <>() 확장 메소드를 호출하여 NHibernate 질의에 대한 Linq를 미래로 실행할 수 있다는 것을 알고 있습니다. 그러나 매핑 된 엔티티를로드하는 것이 아니라 데이터를 DTO에 직접로드합니다.Linq to NHibernate + transformations + future

var results = (from e in session.Query<Entity>() 
       where e.Reference.Id == someId 
       orderby e.Name 
       select new Dto 
       { 
        Id = e.Id, 
        Name = e.Name, 
        // ... 
       }).ToFuture<Dto>(); 

내가 원하는대로이 작동하지 않습니다 (나는 을 기대 말을 감히) : 그래서 당신이 뭔가를 얻을. 이제 오류가 발생합니다. The value "System.Object[]" is not of type "Entity" and cannot be used in this generic collection..ToFuture()이 제거되었지만 쿼리가 일괄 처리되지 않습니다.

QueryOver API를 사용하여이 작업을 수행 할 수 있다는 것을 알고 있습니다. Linq가 NH에 더 좋음을 좋아합니다. 코드가 훨씬 깔끔하기 때문입니다.

답변

0

이것은 버그처럼 보입니다. 간단한 재생 테스트 케이스를 만들 수있는 경우 새로운 문제를 https://nhibernate.jira.com/에 입력하십시오.

이 버전에서 이미 수정 된 similar defect이 있었기 때문에 최신 버전 (당시 3.2)을 사용하고 있는지 확인하기 전에 확인하시기 바랍니다.

+0

아마도 그 때입니다. NHibernate 3.0 (일반적인 라이브러리 제한 : --(아마 여기에 문제가 있습니다.) 쉽게 3.2 테스트 할 수 없습니다. 다음 QueryOver 전환 할 것입니다 ... – Koen

관련 문제