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