¿Hay alguna forma de encontrar todas las entidades a las que se han eliminado sus relaciones?

stoy tratando de que mi lógica de negocios no conozca el funcionamiento interno de mi capa de datos y viceversa.

But Entity Framework lo está haciendo difícil. Puedo insertar en una colección (en mi Business Layer) sin una referencia al ObjectContext:

order.Containers.Add(new Container { ContainerId = containerId, Order = order });

Y eso ahorra bien cuando llega el momento de hacer unSaveChanges() en la capa de datos.

Pero para eliminar un elemento de una colección, necesito una referencia al ObjectContext. (Soy el caso # 1 en esteguide para eliminar entidades EF.) Si solo hago esto:

 delContainers.ForEach(container => order.Containers.Remove(container));

Entonces cuando llamo aSaveChanges() Recibo una excepción que me indica que necesito eliminar el objeto y la referencia.

Entonces, mis opciones tal como las veo son:

Para pasar un delegado a mi lógica de negocios que llamará al método de eliminación de contexto de objeto de Entity Framework. O (espero) encontrar una manera de obtener todas las entidades a las que se les haya eliminado su referencia y realmente eliminarlas. (Justo antes de llamar aSaveChanges() en mi capa de datos.)

¿Alguien sabe una manera de hacer eso?

ACTUALIZAR

Intenté esto:

// Add an event when Save Changes is called
this.ObjectContext.SavingChanges += OnSavingChanges; 

...

void OnSavingChanges(object sender, EventArgs e)
{
   var objectStateEntries = ObjectContext.ObjectStateManager
                                  .GetObjectStateEntries(EntityState.Deleted);

   foreach (var objectStateEntry in objectStateEntries)
   {
       if (objectStateEntry.IsRelationship)
       {
            // Find some way to delete the related entity
       }
   }
}

Pero ninguno, aunque eliminé una relación, el conjunto de elementos eliminados está vacío.

(Intenté ver todos los elementos también y mi relación no está ahí. Claramente, hay algo fundamental que no entiendo sobre ObjectStateManager).

Respuestas a la pregunta(4)

Su respuesta a la pregunta