Q tal a todos, tengo un problema y realmente no sé cómo solucionarlo,
estoy utilizando CpBT en mi proyecto y tengo una estructura de árbol
de una tabla, la cuestión es que necesito armar toda la estructura y
mostrarla en pantalla eso lo consigo obteniendo de la tabla de la BD
todos los registros y armando en el servidor de aplicaciones toda la
jerarquía, la cuestión es que al finalizar de armar toda la estructura
y terminar el método me hace updates a todos los registros de la lista
q estoy devolviendo. Les coloco el código:

[PersistenceConversation(ConversationEndMode = EndMode.End)]
        public IList<ModuloContenido> ObtenerArbol(int idModulo)
        {
            ICriteria criteria =
Sesion.CreateCriteria<ModuloContenido>();
            criteria.Add(Expression.Eq("IdModulo", idModulo));
            criteria.List<ModuloContenido>();

            foreach (var contenido in lista.Where(nodo => nodo.Orden
== 0))
            {
                ArmarJerarquia(contenido, lista);
            }

            return lista.Where(nodo => nodo.Orden == 0).ToList();
        }


private void ArmarJerarquia(ModuloContenido contenido,
IList<ModuloContenido> lista)
        {
            contenido.ColModuloContenidoHijos = lista.Where(nodo =>
nodo.IdPadre == contenido.IdModuloContenido).ToList();
            if (contenido.ColModuloContenidoHijos.Count > 0)
            {
                foreach (var contenidoHijo in
contenido.ColModuloContenidoHijos)
                {
                    ArmarJerarquia(contenidoHijo, lista);
                }
            }
        }

Y este es el log de las transacciones realizadas al finalizar el
método "ObtenerArbol":

NHibernate: UPDATE [ModuloContenido] SET IdPadre = null WHERE IdPadre
= @p0;@p0 = 16
NHibernate: UPDATE [ModuloContenido] SET IdPadre = null WHERE IdPadre
= @p0;@p0 = 17
NHibernate: UPDATE [ModuloContenido] SET IdPadre = @p0 WHERE
IdModuloContenido = @p1;@p0 = 16, @p1 = 17

Qué es lo que estoy haciendo mal?
Gracias por adelantado 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

Responder a