Estoy usando Entity Framework 4 y tengo una relación uno a muchos entre una entidad principal y otra secundaria. Estoy tratando de eliminar a un niño mediante el repositorio padre quitándolo de colección de los niños de los padres:¿Cómo elimino una entidad hija de una colección principal con Entity Framework 4?
public virtual void RemoveChild(Child child)
{
children.Remove(child);
}
Cuando trato de guardar los cambios me sale el siguiente error:
A relationship from the 'ParentChild' AssociationSet is in the 'Deleted' state. Given multiplicity constraints, a corresponding 'Child' must also in the 'Deleted' state.
Ciertamente yo ¡no es necesario eliminar la entidad hija explícitamente usando un repositorio hijo!
Gracias, pero estoy eliminación de un niño no es el padre . Intenté poner cascada en eliminar en el elemento primario y obtuve el mismo error. El padre es la raíz agregada así que estoy usando el repositorio padre para eliminar uno de sus hijos. ¿Conoces la mejor manera de hacer esto? Cualquier ayuda sería muy apreciada. – simonjreid
En este caso, la eliminación de la relación elimina al niño si (1) el FK del padre está en el PK del niño y (2) hay una cascada. Ver http://blogs.msdn.com/dsimmons/archive/2010/01/31/deleting-foreign-key-relationships-in-ef4.aspx –
Muchas gracias Craig. Creo que mi escenario se encuentra en el Caso 1 de ese artículo: el FK de los padres no está en PK del niño. Entonces parece que tendré que eliminar al niño yo mismo. Parece que las futuras versiones podrían encargarse de esto ... – simonjreid