Estoy desarrollando una aplicación de muestra para que pueda conocer los pormenores de NHibernate. Estoy luchando con un problema de eliminación. Deseo poder eliminar un registro secundario quitándolo de la colección principal y luego guardando el padre. He configurado una relación bidireccional de uno a muchos y la inserción/actualización funciona muy bien.Eliminar un registro secundario de la colección principal
Éstos son mis asignaciones
Cesta:
<bag name="Items" inverse="true" cascade="all"> <key column="BasketId" /> <one-to-many class="BasketItem" /> </bag>
BasketItem:
<many-to-one not-null="true" name="Basket" column="BasketId" />
quisiera llamar basket.RemoveBasketItem(BasketItem item)
continuación Session.SaveUpdate(basket)
de manera que se elimina el elemento de la cesta . es posible?
Cuando mi RemoveBasketItem se ve así: this.basketItems.Remove (itemToRemove); Me sale este error: una colección con cascada = "todo-eliminar-huérfano" ya no era referenciada por la instancia de la entidad propietaria: Basket.Items –
Parece que sobrescribió de algún modo la referencia 'IList' que contiene los artículos de su cesta. Solo puede poner su propia implementación de 'IList' allí cuando la referencia de la lista sea nula: si carga una cesta desde el DB, NH colocará su propio' PersistentBag' como la implementación 'IList', y debe dejar esta referencia solo para que la cascada funcione correctamente. – mookid8000
¡Lo tengo para trabajar! Gracias por su ayuda :-) Estaba teniendo problemas porque mi propiedad basket.Items estaba renovando una lista de solo lectura. Ahora simplemente estoy devolviendo la instancia privada de mis artículos. –