Gracias Diego por la respuesta, explico un poco más mi situación:
Estoy tratando de cargar el menú para un usuario que puede tener n
niveles, entonces tengo que jalar las opciones correspondientes a los
roles en los que se encuentra en usuario, estas son las clases:
public class Rol
{
public virtual int IdRol { get; set; }
public virtual string Nombre { get; set; }
...
// MANY TO MANY
public virtual IList<OpcionMenu> ColOpcionMenu { get; set; }
}
public class OpcionMenu
{
public virtual int IdOpcionMenu { get; set; }
public virtual string Nombre { get; set; }
public virtual int? IdPadre { get; set; }
...
public virtual IList<OpcionMenu> ColOpcionMenuHijas { get;
set; }
public virtual IList<Rol> ColRol { get; set; }
}
Solo se pueden asociar las opciones con IdPadre = null a los roles.
Traté de hacerlo de esta forma:
ICriteria query = Sesion.CreateCriteria<OpcionMenu>()
.CreateAlias("ColRol", "rol")
.Add(Expression.In("rol.IdRol", idsRoles.ToArray()))
.SetFetchMode("ColOpcionMenuHijas", FetchMode.Join)
.SetResultTransformer(Transformers.DistinctRootEntity);
return query.List<OpcionMenu>();
Me trae las opciones correctamente pero solo me carga el siguiente
nivel de opciones. Hay alguna forma de hacerlo?
Gracias por la ayuda
--
Para escribir al Grupo, hágalo a esta dirección:
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano