2010-09-14 4 views

Répondre

2

Avez-vous essayé d'utiliser le Transformers classe?

Voir section 16.1.5

+0

C'est terrifiant phénoménal. Permet de supprimer rapidement les scénarios O (n) avec du code SQL personnalisé et de ne pas avoir besoin d'un autre mappeur ORM, je pense. On dirait que la même chose peut être faite dans Entity Framework, supprimant le besoin de Dapper, etc. –

1

Avec HQL, vous venez SELECT les propriétés que vous voulez:

var query = Session.CreateQuery("select p.Id, p.Price from Products p where p.Status = 'A'") 
        .List().Cast<object[]>(); 

Il est similaire avec NHibernate.Linq:

var query = from p in Session.Linq<Product>() 
      where p.Status == "A" 
      select new 
      { 
       p.Id, p.Price 
      }; 
+0

Je ne peux pas tout à fait comprendre par exemple avec hql. Qu'est-ce que Cast est? Lorsque vous utilisez le regroupement (contrairement à votre exemple), les données par défaut sont renvoyées sous la forme Liste (dans votre exemple, il contient Integer et Decimal). Si je n'ai besoin que des prix des produits, comment puis-je les obtenir? – kilonet