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].
For more options, visit this group at
http://groups.google.com/group/nhusers?hl=en.