NHibernate: seleccione una a muchas uniones restantes - Tome X más reciente de Parent

Tengo los siguientes objetos:

Parent
   public virtual Guid Id { get; set; }
   public virtual DateTime TimeStamp { get; set; }
   public virtual IList<Child> Childs { get; set; }

Child
   public virtual Guid Id { get; set; }
   public virtual string Name { get; set; }

Uso Fluent para asignar uno a muchos de la siguiente manera:

.Override<Parent>(obj =>obj.HasMany(x => x.Childs)
                                .Cascade.All()
                                .Not.Inverse()
                                .Not.KeyNullable()
                                .Not.KeyUpdate())

Necesito comunicarme con todos los padres con hijos entre las fechas ordenadas por TimeStamp.

Estoy tratando de hacerlo de la siguiente manera (maxCapacity es int):

QueryOver<Parent>().Where(x => x.TimeStamp > from)
            .And(x => x.TimeStamp < to).OrderBy(x => x.TimeStamp).Desc
            .Left.JoinQueryOver<Child>(x => x.Childs)
            .TransformUsing(new DistinctRootEntityResultTransformer())
            .Take(maxCapacity).List();

El resultado no es lo que esperaba ya que elTake (maxCapacity) no está en el resultado primario sino en el resultado total de la consulta que incluye primario y secundario.

¿Cómo puedo obtener las últimas filas padre X ya transformadas?

Gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta