Marcelo, lo primero que tenes que entender es que no hay ningún problema.
Es decir, no tenes que buscar una solución a un problema, sino aprender como
trabaja NH.

El problema real es que un objeto esta cambiando en una session distinta que
la session que vos estas viendo, y si en tu caso de uso es importante que
esto pueda pasar tenes que aprender a usar los metodos Merge() y Refresh()

Gustavo.

2009/12/4 Marcelo Salazar <[email protected]>

>
> Gracias, por la aclaración estoy informandome mas sobre las cache de
> segundo nivel que según lo que tengo entendido podria solucionar mi
> problema. Alguna sugerencia respecto a alguna cache de segundo nivel
> que aplique a mi problema?
>
> Saludos
>
> On 3 dic, 14:25, Gustavo Ringel <[email protected]> wrote:
> > Bueno, ahi es distinto y ahi si aplica todo lo que te dijeron del Cache.
> > Si el dato ya lo leiste (no es nuevo!) entonces NH no va a ir a buscarlo
> a
> > la base, si vos sabes que en tu caso de uso eso puede pasar, tenes que
> usar
> > session.Refresh()
> >
> > Gustavo.
> >
> > 2009/12/3 Marcelo Salazar <[email protected]>
> >
> >
> >
> >
> >
> > > Mis sinceras disculpas, el error no radica al momento en que otro
> > > usuario ingresa un registro sino que cuando este actualiza alguno.
> >
> > > En este momento, si yo, listo todos los clientes me quedan en un cache
> > > y si alguno de ellos es modificado directamente en la BD o con otro
> > > programa, al listar nuevamente todos los clientes el listado no varia,
> > > siendo que deberian listarse los clientes con las modificaciones
> > > realizadas. Espero que me halla explicado bien.
> >
> > > saludos
> >
> > > On 3 dic, 12:21, Marcelo Salazar <[email protected]> wrote:
> > > > Hola,
> >
> > > > gracias a todos por sus prontas respuestas. Adjunto código solicitado
> >
> > > > El código del Manejador de Sesiones se encuentra enhttp://
> > > shorttext.com/hio52ln0d
> >
> > > > Básicamente lo que realizo cuando hago un GetAll es:
> >
> > > > public class ClienteDAO : AbstractGenericDao<Cliente, uint> { }
> >
> > > > public class SADFactoryDAO
> > > > {
> > > >         public ClienteDAO GetClienteDAO()
> > > >         {
> > > >             return new ClienteDAO();
> > > >         }
> >
> > > > }
> >
> > > > public abstract class AbstractGenericDao<T, IdT>
> > > > {
> > > >    public List<T> GetAll()
> > > >    {
> > > >         ICriteria criteria = NHibernateSession.CreateCriteria(typeof
> > > > (T));
> >
> > > >         return criteria.List<T>() as List<T>;
> > > >     }
> >
> > > > }
> >
> > > > Entonces en mi formulario agrego
> >
> > > > FORM1:
> >
> > > > SADFactoryDAO gFactory = new SADFactoryDAO();
> >
> > > > private void Form1_Load(object sender, EventArgs e)
> > > > {
> > > >    IClienteDAO wCliDAO = gFactory.GetClienteDAO();
> > > >    List<Cliente> wListacliente = wCliDAO.GetAll();
> >
> > > > }
> >
> > > > Eso es básicamente lo mas importante de mi conexión. Por cierto me
> > > > base en unos ejemplo que hay en Codeproject.com Un tal BasicSample
> > > > junto a un enterpriseSample.
> >
> > > > Saludos y se agradece nuevamente su ayuda
> >
> > > > On 2 dic, 16:19, Gustavo Ringel <[email protected]> wrote:
> >
> > > > > A mi gusto el problema que haya no tiene que ver con NH sino con
> como
> > > estas
> > > > > trabajando...tendrias que pasar un poco mas de codigo donde estan
> > > pasando
> > > > > las cosas para ver.
> >
> > > > > 2009/12/2 Marcelo Salazar <[email protected]>
> >
> > > > > > Hola a todos,
> >
> > > > > > estoy incursionando en NHibernate. Tengo una aplicación corriendo
> > > > > > bastante bien realizando todos los CRUD sin problemas, sin
> embargo se
> > > > > > me ha presentado el siguiente inconveniente.
> >
> > > > > > Suponiendo que tengo una clase clientes y en un Datagridview un
> > > > > > usuario (UsuarioA) listo la información de todos los clientes
> > > mediante
> > > > > > un metodo GetAll() del DAO de Clientes (Le desplego un listado de
> 100
> > > > > > registros). Paralelamente otro usuario (UsuarioB) ingresa
> mediante un
> > > > > > formulario un nuevo cliente (llamemosle clienteA) y yo ingreso
> > > > > > manualmente mediante un gestionador de BD (SQLyog, por ejemplo)
> un
> > > > > > nuevo cliente (llamemosle clienteB).
> >
> > > > > > Ahora, cuando el UsuarioA llama denuevo la funcion GetAll de
> > > Clientes,
> > > > > > le sigue mostrando los 100 clientes y no los 102 que deberian ser
> en
> > > > > > realidad. ¿Que esta sucediendo? ¿Alguna sugerencia al respecto?
> >
> > > > > > Saludos- Ocultar texto de la cita -
> >
> > > > > - Mostrar texto de la cita -- Ocultar texto de la cita -
> >
> > > > - Mostrar texto de la cita -- Ocultar texto de la cita -
> >
> > - Mostrar texto de la cita -
> >
>

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