2011-04-11 3 views
0

J'explorais Nhibernate et j'ai rencontré un problème.Comment transformer une entité en dto composite? (Fluent Nhibernate)

J'ai les entités suivantes.

Entities

Et le Dto correspondant pour les

Dtos

Maintenant, en utilisant la requête suivante, je suis en train de transformer les commandes en Orderdto

select o 
    FROM Order o 
    join o.OrderItems 
    join o.Customer 

La transformation suivante ne fonctionne pas probablement parce que l'Ordre est un type composite.

var query = session.GetNamedQuery("GetOrderSummaries") 
      .SetResultTransformer(Transformers.AliasToBean<OrderItemDto>()); 

Toute transformation hors boîtier est-elle disponible dans de telles situations?

Répondre

1

Personnellement, j'utiliserais AutoMapper pour cela, plutôt que de le faire en Nhibernate/Fluent (que ce soit ou non possible).

+0

J'ai essayé de le faire aussi, mais bizarrement cela marche quand je crée un nouvel objet entité (par exemple order = new Order()), mais pas quand je le récupère en utilisant nhibernate. Pensé que cela pourrait être dû aux proxies que nibernate utilise. –

+0

Il devrait fonctionner avec les proxies sans problème (tant que l'ISession est toujours ouvert). Qu'est-ce qui se passe quand essayer? – UpTheCreek

Questions connexes