2009-10-28 4 views
3

je le code suivant:NHibernate: Liste Projection

criteria.SetProjection(Projections.ProjectionList() 
.Add(Projections.Property("_personId")), "_ personId") 
.Add(Projections.Property("_firstName"), "_firstName") 
.Add(Projections.Property("_lastName"), "_lastName") 
.Add(Projections.Property("_address"), "_ address ")     
.SetResultTransformer(Transformers.AliasToBean(typeof(Person))); 

Je reçois l'erreur suivante: NHibernate.QueryException: la propriété ne correspond pas à une seule colonne: _address

_address est un composant de Personne à Nhibernate Mapping.

Est-il possible d'utiliser Projections.Property sur un composant?

Répondre

0

Je ne pense pas que vous pourriez utiliser le composant _address, vous devez utiliser les noms de colonnes individuels qui composent le composant _address.

Alors somthing comme

.CreateAlias("Person.Address", "Address")  
.Add(Projections.Property("_streetName"), "Address.streetOne")     
+0

Merci. J'ai ajouté .Add (Projections.Property ("_ addressOne"), "_address._addressOne"). Je reçois l'erreur: impossible de résoudre la propriété: _addressOne de Person. _addressOne est une propriété de la classe Address. – Ros

+0

vous devrez peut-être ajouter un CreateAlias ​​à votre clause – lomaxx

+0

Merci. J'ai ajouté un CreateAlias ​​et cela ne fonctionne toujours pas. – Ros