Si realmente desea usar Suprimido, tendría que hacer que sus claves foráneas se anularan, pero luego terminaría con registros huérfanos (que es una de las razones principales por las que no debería estar haciendo eso en primer lugar). Así que solo usaRemove()
ObjectContext.DeleteObject (entidad) marca la entidad como eliminada en el contexto. (Su EntityState se elimina después de eso). Si llama a SaveChanges después, EF envía una declaración DELETE de SQL a la base de datos. Si no se violan las restricciones referenciales en la base de datos, la entidad se eliminará; de lo contrario, se generará una excepción.
EntityCollection.Remove (childEntity) marca la relación entre parent e childEntity como Deleted. Si childEntity se elimina de la base de datos y lo que sucede exactamente cuando llama a SaveChanges depende del tipo de relación entre los dos:
Una cosa que vale la pena señalar es que la configuración .State = EntityState.Deleted
no activa el cambio detectado automáticamente. ( archivo )