Estás indicando optimistic-lock="dirty" en lugar de dejar el default, que es
"version".

    Diego


2010/8/24 Diego Perlman <[email protected]>

> Diego ahora lo pude agregar...
>
> Te incluyo la clase y el mapping...
>
> El tema es que cuando veo el SQL que genera NH no pregunta en el WHERE
> por el campo VERSION...
>
> Mapping
>
> <?xml version="1.0" encoding="utf-8" ?>
> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="AC"
> namespace="AC.Domain">
>  <class name="Banco" table="bancos" optimistic-lock="dirty"
>                         dynamic-update="true">
>    <id name="Id" column="idBanco">
>      <generator class="native" />
>    </id>
>    <version name="Version" column="Version" type="integer"
> unsaved-value="0"></version>
>    <property name="Nombre" column="nombre" type="System.String"
> length="200" />
>    <property name="Activo" column="activo" type="System.Int32" />
>  </class>
> </hibernate-mapping>
>
> Clase
>
> using System;
>
> namespace AC.Domain
> {
>    public class Banco
>    {
>        private Int32 _id;
>        private String _nombre;
>        private Int32 _activo;
>        private Int32 _version;
>
>        public virtual Int32 Version
>        {
>            get { return _version; }
>            set { _version = value; }
>        }
>
>        public virtual Int32 Id
>        {
>            get { return _id; }
>            set { _id = value; }
>        }
>
>        public virtual String Nombre
>        {
>            get { return _nombre; }
>            set { _nombre = value; }
>        }
>
>        public virtual Int32 Activo
>        {
>            get { return _activo; }
>            set { _activo = value; }
>        }
>
>        public override bool Equals(object obj)
>        {
>            if (obj == null || !(obj is Banco))
>                return false;
>
>            var banco = (Banco)obj;
>
>            return ((Nombre == null && banco.Nombre == null) ||
> Nombre.Equals(banco.Nombre));
>        }
>
>        public override int GetHashCode()
>        {
>            return string.Format("{0}", Nombre).GetHashCode();
>        }
>    }
> }
>
>
>
>
> El día 24 de agosto de 2010 12:17, Diego Mijelshon
> <[email protected]> escribió:
> > ¿Podrías incluir la clase y el xml?
> >
> >     Diego
> >
> >
> > 2010/8/24 Diego Perlman <[email protected]>
> >>
> >> Diego intento poner el <version > en mi mapping y me tira error, como
> >> que no lo reconoce.
> >> Tenes idea que puede estar pasando. Estoy usando NH 2.1
> >> Saludos
> >>
> >> El día 24 de agosto de 2010 12:00, Diego Mijelshon
> >> <[email protected]> escribió:
> >> > ¿Probaste agregar control _optimista_ de versiones?
> >> >
> >> >     Diego
> >> >
> >> >
> >> > 2010/8/24 Diego <[email protected]>
> >> >>
> >> >> 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
> >> >
> >> > --
> >> > 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
> >
> > --
> > 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
>

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