Gracias Diego... Lo pude resolver cambiando el optimistic-lock... Muchas gracias por tu ayuda. Saludos Diego
El día 24 de agosto de 2010 13:18, Diego Mijelshon <[email protected]> escribió: > 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 -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano
