saludos no he mandado las clases porque realmente mapeo con Fluent y
se que este foro es mas bien de NHibernate puro y el problema que
surge es de sesion, de todas formas aqui les envio las clases.
public partial class Dactilar
{
public virtual long IdDactilar { get; set; }
public virtual long VersionImpresion { get; set; }
public virtual string TipoImpresion { get; set; }
public virtual Persona aPersona { get; set; }
}
public partial class Foto
{
public virtual long IdFoto { get; set; }
public virtual byte[] ImagenRostro { get; set; }
public virtual Persona IdPersona { get; set; }
}
public partial class LugarNacDef
{
public virtual long IdPersona { get; set; }
public virtual Persona RPersona { get; set; }
public virtual string LugarNac { get; set; }
public virtual string FechaNac { get; set; }
}
public partial class OtroNombre
{
public virtual Persona Per_Id_Per { get; set; }
public virtual Persona Per_Id_Otr { get; set; }
public virtual DateTime? FechIdentPer { get; set; }
public virtual string SimilitudPer { get; set; }
public override int GetHashCode()
{
return Per_Id_Per.GetHashCode() + Per_Id_Otr.GetHashCode();
}
public override bool Equals(object obj)
{
return base.Equals(obj);
}
}
public partial class Perdir
{
public virtual Tramite solicitud { get; set; }
public virtual Persona persona { get; set; }
public virtual DateTime? Fech_Reg_Direc { get; set; }
public override bool Equals(object obj)
{
return base.Equals(obj);
}
public override int GetHashCode()
{
return solicitud.GetHashCode() + persona.GetHashCode();
}
}
public partial class Tramite
{
public virtual long IdSol { get; set; }
public virtual Persona PerSol { get; set; }
public virtual string EstSolDc { get; set; }
public virtual long IdFoto { get; set; }
public virtual long SolConsul { get; set; }
}
he visto en algunos lugares que dicen que eso se debe a que creo en la
sesion de hibernate otro objeto con el mismo id igual al objeto que
deseo eliminar, pero no se quizas con estas clases publicadas me
puedan dar otra opinion o quizas la misma
El 17/11/11, Carlos Peix <[email protected]> escribió:
> Hola Denis,
>
> No veo que hayas enviado clases al principio este threado. Podrias por
> favor enviar el codigo de la clase, al menos la implementacion de la
> propiedad Id y del Equals y GetHashCode (estos ultimos en caso de que los
> hayas sobreescrito)
>
> Gracias
>
> ----------------------------------
> Carlos Peix
>
> 2011/11/17 Banzai <[email protected]>
>
>> Disculpen que no haya respondido antes, pero no estaba viniendo a la
>> oficina,
>> mira el problema es el siguiente: Remontense a las clases que puse al
>> principio
>> La situacion problemica es que yo puedo llegar a tener dos personas
>> insertadas en el sistema p1 y p2, y en un momento determinado me
>> percato que los dos son la misma persona, entonces deseo pasar todas
>> las solicitudes,direcciones, fotos, lugar de nacimiento que eran de la
>> p1 a la p2. para ello hago el siguiente algoritmo
>>
>> en OtroNombre hay dos objetos persona (p1cuyo id es 49 y p2 cuyo id
>> es 65) mas un campo que explica porque estaban como si fueran
>> diferentes
>>
>> ITransaction transaction = MainClass.m_session.BeginTransaction();
>>
>> - metodo que reasigna la foto de p1 a p2
>>
>> - metodo que reasigna direccion de p1 a p2
>>
>> - metodo que reasigna solicitud de p1 a p2
>>
>> - metodo que elimina LugarNac de p1
>>
>> - metodo que elimina OtroNomb donde esta p1 y p2
>>
>> - metodo que elimina Persona p1
>>
>> transaction.Commit();
>>
>> ninguno de estos metodos hace commit adentro solo salvan en la sesion
>> de NHibernate, estos son los ejemplos:
>> reasignar : MainClass.m_session.Merge(direccion);
>> eliminar: MainClass.m_session.Delete(lugarnac);
>>
>> todos los metodos funcionan menos el ultimo que elimina la persona el
>> cual me da el siguiente error:
>> a different object with the same identifier value was already
>> associated with the session: 49, of entity: Proyecto.Persona
>>
>> Alguien sabe que significa este mensaje????
>>
>> --
>> 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