Este es nuestro método mediante el cual obtenemos  session

public static ISession Session(string database)
        {
            if (SessionStorage == null)
            {
                throw new Exception("NHibernateSession no está
inicializado. Llama a Init antes de operar con él. Comprueba también
que haya un ISessionStorage asociado a NHibernate.");
            }

            ISession session = SessionStorage.Session(database);
            if (session == null)
            {
                session = _sessionFactory[database].OpenSession();
                SessionStorage.SetSession(database, session);
            }

            return session;
        }

Esta es la forma en que lo empleamos

            var session =
NHibernateSession.Session(NHibernateSession.BBDD);
            using (var transaction = session.BeginTransaction())
            {
                var listaMensaje = session
                    .CreateQuery(@"
                        from
                            NhOfiMensajeria M
                        where
                            M.Referencia like 'FD:%'
                            And M.AUsuario=:valorUsuarioMensajeria
")
                    .SetParameter("valorUsuarioMensajeria",
valorUsuarioMensajeria)
                    .List<NhOfiMensajeria>();

                transaction.Commit();
            }

On 9 ago, 16:40, Gustavo Ringel <[email protected]> wrote:
> Si tu flush mode no es en commit el commit no hace flush de todo lo que
> escribiste.
> Adicionalmente suena a que tenes lo que llama un Time Bomb session
> management, o sea suena a que abris una sola session.
> Si abris sessions de NHibernate en cada request no tendrias que tener ningun
> problema de leer los datos que se escriben en la otra base.
> Claro que si por ejemplo cacheas, o le decis a NH que los datos no son
> mutables, podes tener distintos tipos de desincronizacion.
>
> Gustavo.
>
> 2010/8/9 Maria Teresa Ruiz Espinosa <[email protected]>
>
>
>
> > Nuestro funcionamiento normal es hacer un beginTransaction y al finalizar
> > la consulta un commit de la transacción.
>
> > No tenemos definido ningún FlushMode en especifico.
>
> >  --
> > Para escribir al Grupo, hágalo a esta dirección:
> > [email protected]
> > Para más, visite:http://groups.google.com/group/NHibernate-Hispano

-- 
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