2016-10-05 2 views

Répondre

4

je dirais que cette explication complète est dans le doc:

QueryOver permet iProjection arbitraire être ajouté (permettant aux propriétés privées d'être projetées). La classe usine de projections a également surcharge pour permettre des expressions lambda à utiliser:

IList selection = 
    session.QueryOver<Cat>() 
     .Select(Projections.ProjectionList() 
      .Add(Projections.Property<Cat>(c => c.Name)) 
      .Add(Projections.Avg<Cat>(c => c.Age))) 
     .List<object[]>(); 

En outre, il est une syntaxe en ligne pour créer des listes de projection qui ne nécessite pas la qualification de classe explicite:

IList selection = 
    session.QueryOver<Cat>() 
     .SelectList(list => list 
      .Select(c => c.Name) 
      .SelectAvg(c => c.Age)) 
     .List<object[]>(); 

voir Check 16.6. Projections