Estoy intentando eliminar un objeto de una colección en el marco de la entidad, pero desafortunadamente mi código está fallando. Estaría agradecido si pudieras echar un vistazo y avisarme si puedes descubrir lo que estoy haciendo mal. Mis objetos son los siguientes:Eliminar() no funciona con la relación de muchos a muchos en Entity Framework
- persona < -> Placa (relación de muchos a muchos)
- Placa < -> BadgeRequirement (relación de uno a muchos)
- persona contiene un ICollection de insignias
- insignia contiene un ICollection de la persona
- BadgeRequirement contiene una clave externa Placa
Agregar y editar entradas funciona absolutamente bien.
Sin embargo, cuando intento para eliminar una insignia de una persona con el siguiente código, que no funciona:
Postback event handler on example.aspx
****The person object has been loaded as part of the load event on the page****
Badge badge = BadgeHelper.getBadge(badgeID);
if (command == "Delete")
{
PersonHelper.removeBadgeFromPerson(badge, person);
}
Delete method on PersonHelper class (wrapper for all processing)
person.Badges.Remove(badge);
DbContext.SaveChanges();
El Remove (divisa) devuelve falso y no puedo Profile como yo estoy usando SQL Compact 4.0
¡Gracias de antemano por su ayuda!
¿Se puede depurar el código y comprobar que 'colección Badges' en el' Person' contiene la credencial que están tratando de eliminar? ¿Contiene alguna insignia? –
Hola Ladislav, puedo verificar que el objeto persona contiene una colección Badges completamente cargada. En mi consulta "Obtener", utilizo el p desde la persona. Incluir ("Insignias") para asegurarme de que la colección se carga y se transmite en consecuencia. Sin embargo, cuando intento eliminar la insignia en cuestión de la colección, no se realiza ninguna eliminación. En cambio, remove (badge) devuelve falso. No estoy seguro si esto ayuda. Gracias – Chris