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.