Question

Pour garder mes requêtes autonomes et potentiellement réutilisables, je tendais à faire en -NH2:

public class FeaturedCarFinder : DetachedCriteria
{
    public FeaturedCarFinder(int maxResults) : base(typeof(Car))
    {
        Add(Restrictions.Eq("IsFeatured", true));
        SetMaxResults(maxResults);
        SetProjection(BuildProjections());
        SetResultTransformer(typeof(CarViewModelMessage));
    }
}

Je voudrais utiliser QueryOver maintenant que je suis déménagé à NH3, mais je ne suis pas sûr de savoir comment faire ci-dessus en utilisant QueryOver?

Était-ce utile?

La solution

Quelqu'un sur la liste des utilisateurs NH m'a donné la réponse:

public class FeaturedCarFinder : QueryOver<Car, Car> 
{ 
    public FeaturedCarFinder(int maxResults) 
    { 
        Where(c => c.IsFeatured); 
        Take(maxResults); 
        BuildProjections(); 
        TransformUsing(Transformers.AliasToBean(typeof(CarViewModelMessage))); 
    } 
    private void BuildProjections() 
    { 
        SelectList(l => 
            l.Select(c => c.IsFeatured) 
            //... 
            ); 
    } 
} 

Très similaire à l'utilisation DetachedCriteria en tant que classe de base, mais notez l'utilisation de QueryOver (à savoir les deux version de type argument) plutôt que QueryOver comme la classe de base.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top