De todas formas, puedes ejecutar la consulta indicando directamente el
lock que quieres hacer:

session.Get(persitentType, id, LockMode.Upgrade);
session.Load(persitentType, id, LockMode.Upgrade);

Saludos

On 24 ago, 16:37, Diego <[email protected]> wrote:
> Buenas a todos antes que nada.
> Les cuento que empece trabajar con NH hace unos 6 meses.
> Y ahora que tengo la aplicacion corriendo con varios usuarios tengo
> graves problemas con el tema de la concurrencia.
> He leido el articulo de Ayende y el knol (creo que lo escribio Fabio).
> El tema es que pruebo hacer un Lock al momento de hacer un Upgrade y
> no funciona.
> Tambien probe hacer un Lockeo pesimista y tampoco funciona.
> Me parece que no lo se implementar.
> Quiero hacerlo funcionar sobre un objeto sencillo para despues hacerlo
> funcionar en los lugares criticos de la aplicacion.
>
> Lo que probe y no me funciona es lo siguiente:
> public Object GetById(int bancoId)
>         {
>             using (ISession session = NHibernateHelper.OpenSession())
>             using (ITransaction transaction =
> session.BeginTransaction())
>             {
>                 Banco tempBanco = session.Get<Banco>(bancoId);
>                 session.Lock(tempBanco, LockMode.Upgrade);
>                 transaction.Commit();
>                 return tempBanco;
>             }
>
>         }
>
> Ahora 2 usuarios levantan el mismo objeto Banco lo modifican y a
> ninguno le tira el ObjectStaleException.
>
> Alguien me puede decir que estoy haciendo mal y orientarme para ver
> como lo arreglo??
> Saludos
> Diego

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