2009-08-20 4 views
1

nHibernate 용 Linq 버전 1.0을 사용하고 있습니다. 나는 웹이 매우 몇 가지 참조를 찾을 수 있습니다nHibernate Linq 투영

성 및 그것을 말한다 소스로보고 : 나는 다음 LINQ 문을 실행할 때 나는 오류를

없는 하나의 길이 투영을받을 결코 일어나서는 안된다! ClientID는 Int 유형이고 성은 문자열입니다. 투영에있는 모든 문자열 필드를 주석 처리하고 ClientID를 그대로두면 괜찮습니다. 다만 성을 다시 추가하면 오류가 발생합니다.

var context = m_ClientRepository.Linq; 

var result = (from client in context 
       from address in client.Addresses 
       from contact in client.Contacts 
       where client.Surname.StartsWith(surname) 
       && client.GivenName.StartsWith(givenName) 
       && contact.Value.StartsWith(phoneNumber) 
       group client by new { client.ClientID, client.Surname, client.GivenName } into clientGroup 
       select new ClientSearchDTO() 
       { 
        ClientID = clientGroup.Key.ClientID, 
        Surname = clientGroup.Key.Surname, 
        GivenName = clientGroup.Key.GivenName, 
        Address = clientGroup.Max(x => x.Addresses.FirstOrDefault().Address), 
        PhoneNumber = clientGroup.Max(x => x.Contacts.FirstOrDefault().Value) 
       }) 
       .Skip(Paging.FirstRecord(pageNumber)) 
       .Take(5); 

답변

3

AFAIK 선택 nHibernate 수 조항 1.0에서 LINQ aren't supported 서브 쿼리.

이것은 문제의 근원 일 수 있습니다.