Hello,

When I needed something like that,  I constructed my DTO through looping
my  result query....
Em 11/07/2016 18:32, "Nicolás Mancilla" <[email protected]>
escreveu:

> Hello!
>
> As the title says, is it possible to project an entity into a composite
> DTO?
>
> // Entities
> public class Person {
>     public virtual int Id { get; set; }
>
>     public virtual string Name { get; set; }
>
>     public virtual Adress Address { get; set; }
> }
>
> public class Address {
>     public virtual int Id { get; set; }
>
>     public virtual string Street { get; set; }
>
>     public virtual int Number { get; set; }
> }
>
> // DTOs
> public class Dto {
>     public int Id { get;set; }
>
>     public string Name { get; set; }
>
>     public AddressDto Address { get; set; }
> }
>
> public class AddressDto {
>     public int Id { get; set; }
>
>     public string Street { get; set; }
>
>     public int Number { get; set; }
> }
>
> // The query
> Dto dto = null;
> Address address = null;
> var q = session.QueryOver<Person>()
>     .JoinAlias(i => i.Address, () => address)
>     .SelectList(i => i
>         .Select(j => j.Id).WithAlias(() => dto.Id)
>         .Select(j => j.Name).WithAlias(() => dto.Name)
>         .Select(j => address.Street).WithAlias(() => dto.Address.Street)
>         .Select(j => address.Id).WithAlias() => dto.Address.Id)
>         .Select(j => address.Number).WithAlias(() => dto.Address.Number)
>     )
>     .TransformUsing(Transformers.AliasToBean<Dto>())
>     .List();
>
> With this, I get the error: "Could not find a setter for property 'Street'
> in class 'Dto".
>
> I'm using NHibernate 4.0.4 with fluentNhibernate 6.2.1.
>
> Thanks in advance.
>
> --
> You received this message because you are subscribed to the Google Groups
> "nhusers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/nhusers.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/nhusers.
For more options, visit https://groups.google.com/d/optout.

Reply via email to