2009-08-20 8 views
1

J'utilise la version 1.0 de Linq pour nHibernate. Quand je lance les déclarations de LINQ suivantes je reçois l'erreurnHibernate Linq Projection

pas une projection unique longueur: Nom

je peux trouver très peu de références à ce sur le web et la recherche dans la source il dit ne devrait jamais se produire! ClientID est un type Int et Le nom est une chaîne. Lorsque je commente tous les champs de la chaîne dans la projection et laissez simplement ClientID il fonctionne bien, mais dès que j'ajoute le nom de famille les erreurs.

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); 

Répondre

3

autant que je sache, les sous-requêtes dans les clauses SELECT aren't supported dans LINQ to nHibernate 1.0.

Cela peut être la source de votre problème.

Questions connexes