Sorry, I wasn't looking clearly. There is NO FullName property in your mapping. I assume your PatientName class has a calculated property, but NHibernate does not know about it. It's probably better to add a Name property to PatientListViewModel and project or set Fullname from it (if you want to use the transformer, that is)
Diego On Tue, Jun 15, 2010 at 11:40, Reggie Pangilinan <[email protected] > wrote: > Yeah i did that already here is my query > > IList<PatientListViewModel> list = > > _patientDao.ContextSession.CreateCriteria<Patient>() > > .SetProjection(Projections.ProjectionList() > > .Add(Projections.Property("Birthdate"), > "Birthdate") > > .Add(Projections.Property("Doctor.Id"), > "DoctorId") > > .Add(Projections.Property("Gender"), > "Gender") > .Add(Projections.Property("Id"), > "PatientId") > > .Add(Projections.Property("Name.Fullname"), > "Fullname") > ) > > .SetResultTransformer(Transformers.AliasToBean<PatientListViewModel>()) > .List<PatientListViewModel>(); > > > but its throwing an exception the message is "could not resolve property: > Name.Fullname of: OneCare.Domain.Entities.Patient" > > > > On Tue, Jun 15, 2010 at 10:25 PM, Diego Mijelshon > <[email protected]>wrote: > >> Use Name.FullName instead of Patient.Name.FullName. >> Patient does not have a Patient property. >> >> Diego >> >> >> On Tue, Jun 15, 2010 at 11:22, Reggie Pangilinan < >> [email protected]> wrote: >> >>> This is my full mapping file for Patient Entity >>> >>> >>> <?xml version="1.0" encoding="utf-8" ?> >>> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" >>> assembly="OneCare.Domain" >>> namespace="OneCare.Domain.Entities"> >>> <class name="Patient"> >>> <id name="Id" type="Int64"> >>> <generator class="hilo"/> >>> </id> >>> <version name="RecordVersion" column="RecordVersion" type="int"/> >>> <component name="Name" >>> class="OneCare.Domain.Entities.PersonName,OneCare.Domain" > >>> <property name="Firstname" not-null="true"/> >>> <property name="Lastname" not-null ="true"/> >>> <property name="Middlename"/> >>> </component> >>> <property name ="Gender" type >>> ="OneCare.Domain.Entities.Gender,OneCare.Domain" /> >>> <property name ="Birthdate" type ="System.DateTime" >>> not-null="true"/> >>> <many-to-one name="Doctor" column="DoctorId" /> >>> </class> >>> </hibernate-mapping> >>> >>> >>> i achieved what i want using this HQL query >>> >>> IList<PatientListViewModel> list = >>> _patientDao.ContextSession.CreateQuery(@" >>> select >>> >>> f.Birthdate as Birthdate, >>> >>> f.Doctor.Id as DoctorId, >>> >>> f.Gender as Gender, >>> f.Id >>> as PatientId, >>> >>> f.Name as Name >>> >>> from Patient f >>> where f.Doctor.Id = >>> :userid >>> ") >>> >>> .SetInt64(@"userid",WebUserHelper.CurrentUserId) >>> >>> .SetResultTransformer(NHibernate.Transform.Transformers.AliasToBean<PatientListViewModel>()) >>> .List<PatientListViewModel>(); >>> >>> Now i want to know if i can do this using the CRITERIA API, i heard that >>> there are limitations using the criteria api. so is it possible to achive >>> this kind of result? Thanks in advance. >>> >>> >>> >>> On Mon, Jun 14, 2010 at 10:34 PM, Jason Dentler >>> <[email protected]>wrote: >>> >>>> What is your mapping for Patient and Name ? >>>> >>>> Thanks, >>>> Jason >>>> >>>> >>>> On Mon, Jun 14, 2010 at 12:04 AM, reggieboy <[email protected] >>>> > wrote: >>>> >>>>> Hello guys im trying to hydrate a DTO using projections in NHibernate >>>>> this is my code >>>>> >>>>> >>>>> IList<PatientListViewModel> list = >>>>> >>>>> y.CreateCriteria<Patient>() >>>>> >>>>> .SetProjection(Projections.ProjectionList() >>>>> >>>>> .Add(Projections.Property("Birthdate"), >>>>> "Birthdate") >>>>> >>>>> .Add(Projections.Property("Doctor.Id"), >>>>> "DoctorId") >>>>> >>>>> .Add(Projections.Property("Gender"), >>>>> "Gender") >>>>> >>>>> .Add(Projections.Property("Id"), >>>>> "PatientId") >>>>> >>>>> .Add(Projections.Property("Patient.Name.Fullname"), >>>>> "Fullname") >>>>> ) >>>>> >>>>> .SetResultTransformer(Transformers.AliasToBean<PatientListViewModel>()) >>>>> .List<PatientListViewModel>(); >>>>> >>>>> >>>>> But this is throwing and exception, what do you think seems to be the >>>>> problem? is this a limitation of the CRITERIA API? >>>>> >>>>> here is the error message >>>>> >>>>> Message: could not resolve property: Patient.Name.Fullname of: >>>>> OneCare.Domain.Entities.Patient >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "nhusers" group. >>>>> To post to this group, send email to [email protected]. >>>>> To unsubscribe from this group, send email to >>>>> [email protected]<nhusers%[email protected]> >>>>> . >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/nhusers?hl=en. >>>>> >>>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "nhusers" group. >>>> To post to this group, send email to [email protected]. >>>> To unsubscribe from this group, send email to >>>> [email protected]<nhusers%[email protected]> >>>> . >>>> For more options, visit this group at >>>> http://groups.google.com/group/nhusers?hl=en. >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "nhusers" group. >>> To post to this group, send email to [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]<nhusers%[email protected]> >>> . >>> For more options, visit this group at >>> http://groups.google.com/group/nhusers?hl=en. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "nhusers" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]<nhusers%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/nhusers?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "nhusers" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<nhusers%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/nhusers?hl=en. > -- You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.
