Tengo un objeto principal que tiene una relación uno a muchos con un IList de objetos secundarios. ¿Cuál es la mejor manera de eliminar los objetos secundarios? No estoy eliminando el padre. Mi objeto primario contiene un IList de objetos secundarios. Esta es la asignación para el uno a muchos:Cómo eliminar un objeto secundario en NHibernate?
<bag name="Tiers" cascade="all">
<key column="mismatch_id_no" />
<one-to-many class="TGR_BL.PromoTier,TGR_BL"/>
</bag>
Si intento para eliminar todos los objetos de la colección usando clara(), y luego llamar saveOrUpdate(), me sale esta excepción:
System.Data.SqlClient.SqlException: Cannot insert the value NULL into column
Si trato de eliminar los objetos secundarios de forma individual y luego eliminarlos de la matriz, me sale una excepción:
deleted object would be re-saved by cascade
Esta es mi primera vez tratando con la eliminación de los objetos secundarios en NHibernate. ¿Qué estoy haciendo mal?
editar: Solo para aclarar: NO trato de eliminar el objeto principal, solo los objetos secundarios. Tengo la relación establecida como uno a muchos en el padre. ¿También necesito crear una relación de muchos a uno en el mapeo de objetos hijo?
Solo para aclarar: solo tengo la relación definida en el objeto Parent en este momento. Intenté establecer la cascada de ese objeto en "todos" y "eliminar todo-huérfano" con los mismos resultados en ambas ocasiones. ¿Quiere decir que también necesito definir una relación de muchos a uno en el objeto hijo? –
Y en este caso does inverse = "true" pertenece al objeto primario o secundario? –
pertenece a la clase que no tiene la clave externa ... generalmente el padre. – pmlarocque