Tengo un proyecto de implementación de NHibernate y uso de Lazy Loading. Tengo dos clases en este proyecto: Persona y familia. La relación entre Esos dos es la agregación, significa que una Persona tiene una lista de Persona. Maping es:Error en Cascade: el objeto eliminado se volvería a guardar en cascada
<class name="Person" table="Person_Person" >
<id name="Id" type="Int64" unsaved-value="0">
<generator class="native" />
</id>
<bag name="Families" inverse="true" table="Person_Family" cascade="all-delete-orphan" >
<key column="Person_id_fk"/>
<one-to-many class="Domain.Entities.Family,Domain.Entities"/>
</bag>
</class>
En este proyecto, yo consigo a una persona por ID luego retire una familia de familias persona.
Person person = SessionInstance.Get<Person>(id);
foreach (Family fam in person.Families)
if (fam.Name == "Jaun")
SessionInstance.Delete(fam);
La familia no se elimina, porque lanzar una excepción por este mensaje: deleted object would be re-saved by cascade (remove deleted object from associations)[Domain.Entities.Family#167]
¿Cómo puedo eliminar una familia de persona?
'person.Families.Remove (fam); SessionInstance.Save (persona); ' –
@Cole W: Exactamente. – KeithS