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

Responder a