<p>Parce que <code>Stage</code> est <em>requis</em>, toutes les relations un-à-plusieurs où <code>Stage</code> est impliqué auront la suppression en cascade activée par défaut. Cela signifie que si vous supprimez une entité <code>Stage</code></p>
<ul>
<li>
<p>la suppression sera propagée directement à <code>Side</code></p>
</li>
<li>
<p>la suppression sera propagée directement à <code>Card</code> et comme <code>Card</code> et <code>Side</code> ont une relation un-à-plusieurs requise avec la suppression en cascade activée par défaut, elle sera ensuite propagée de <code>Card</code> à <code>Side</code></p>
</li>
</ul>
<p>Vous avez donc deux chemins de suppression en cascade de <code>Stage</code> vers <code>Side</code> - ce qui provoque l’exception.</p>
<p>Vous devez soit rendre <code>Stage</code> optionnel dans au moins l’une des entités (c’est-à-dire supprimer l’attribut <code>[Required]</code> des propriétés <code>Stage</code>), soit désactiver la suppression en cascade avec l’API Fluent (impossible avec les annotations de données) :</p>
<pre><code class="lang-auto">modelBuilder.Entity<Card>()
.HasRequired(c => c.Stage)
.WithMany()
.WillCascadeOnDelete(false);
modelBuilder.Entity<Side>()
.HasRequired(s => s.Stage)
.WithMany()
.WillCascadeOnDelete(false);
</code></pre>