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.