Hi Colin,

I think it would look something like this:

public class CarViewModelMessage
{
   public bool IsFeatured { get; set; }
}

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)
           //...
           );

   }
}


And you could call it using something like:

var carsViewModel =
   new FeaturedCarFinder(25)
       .GetExecutableQueryOver(session)
       .List<CarViewModelMessage>();


Let me know how you get on.

Cheers,
   Richard

-----Original Message----- From: Colin Ramsay
Sent: Wednesday, January 12, 2011 3:48 PM
To: nhusers
Subject: [nhusers] Reusable QueryOver

To keep my queries self-contained and potentially reusable, I tended
to do this in NH2:

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

I'd like to use QueryOver now that I've moved to NH3, but I'm not sure
how to do the above using QueryOver?

--
You received this message because you are subscribed to the Google Groups "nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.

--
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.

Reply via email to