Se você realmente deseja usar Deleted, terá que tornar suas chaves estrangeiras anuláveis, mas acabará com registros órfãos (que é um dos principais motivos pelos quais você não deveria fazer isso em primeiro lugar). Então é só usarRemove()
ObjectContext.DeleteObject (entity) marca a entidade como Excluída no contexto. (É EntityState é excluído depois disso.) Se você chamar SaveChanges depois, o EF enviará uma instrução SQL DELETE ao banco de dados. Se nenhuma restrição referencial no banco de dados for violada, a entidade será excluída, caso contrário, uma exceção será lançada.
EntityCollection.Remove (childEntity) marca o relacionamento entre pai e childEntity como Excluído. Se o próprio childEntity for excluído do banco de dados e o que exatamente acontece quando você chama SaveChanges, depende do tipo de relacionamento entre os dois:
Uma coisa que vale a pena notar é que a configuração .State = EntityState.Deleted
não aciona alterações detectadas automaticamente. ( arquivo )