La raison en est qu'au fur et à mesure que vous supprimez les objets du contexte, EF met activement à jour le fichier Regs le nombre de propriétés de navigation, ce qui signifie que le détail.règlements est en train d'être modifié pendant le foreach qui provoque toujours l'exception que vous obtenez.
Vous pouvez créer un nouvel objet de collection et continuer à en supprimer comme ceci :
foreach (var reg in detail.Regs.ToList())
{
this.db.Regs.DeleteObject(reg);
}
Ou encore, vous pouvez le rendre plus propre en utilisant LINQ ForEach méthode :
detail.Regs.ToList().ForEach(r => db.Regs.DeleteObject(r));