NHibernate3 Query vs QueryOver [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Tradeoffs usando NHibernate 3.0 QueryOver o proveedor LINQ 4 respuestas

e di cuenta de que hay dos formas de crear un buen acceso genérico amigable a nhibernat

IQueryOver<T, T> query= session.QueryOver<T>().Where(criteria);

IQueryable<T> query= session.Query<T>().Where(criteria);

Implementaciones de cada interfaz.

IQueryOver<TRoot, TSubType> : IQueryOver<TRoot>, IQueryOver

IQueryable<out T> : IEnumerable<T>, IQueryable, IEnumerable

IQueryable implementa IEnumerable, por lo tanto, admite todas las cosas amigables de LINQ que esperaría. Me inclino por esta implementación, pero me preguntaba si alguien sabía cuál era el propósito de QueryOver que no puede lograr con Query.