Existe uma maneira de encontrar todas as entidades que tiveram seus relacionamentos excluídos?

Estou tentando não fazer com que minha lógica de negócios conheça o funcionamento interno da minha camada de dados e vice-vers

Mas o Entity Framework está tornando isso difícil. Eu posso inserir em uma coleção (na minha camada de negócios) sem uma referência ao ObjectContext:

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

E isso economiza muito quando chega a hora de fazer umaSaveChanges() na camada de dados.

Mas para excluir um item de uma coleção, preciso de uma referência ao ObjectContext. (Eu sou o caso # 1 nesteguide para excluir entidades EF.) Se eu apenas fizer isso:

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

Então, quando ligo paraSaveChanges() Recebo uma exceção dizendo que preciso excluir o objeto e a referênci

Então, minhas opções como eu vejo são:

Para passar um delegado para a minha lógica de negócios que chamará o método Entity Framework ObjectContext DeletOr (espero) encontre uma maneira de obter todas as entidades que tiveram suas referências excluídas e realmente as exclu (Logo antes de ligar paraSaveChanges() na minha camada de dados.)

lguém conhece uma maneira de fazer iss

ATUALIZAR

Tentei o seguinte:

// 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
       }
   }
}

Mas, mesmo que eu tenha excluído um relacionamento, o conjunto de itens excluídos está vazi

(Tentei visualizar todos os itens também e meu relacionamento não está lá. Claramente, há algo fundamental que não entendo sobre o ObjectStateManager.)

questionAnswers(2)

yourAnswerToTheQuestion