<t>Because Stage is required, all one-to-many relationships where Stage is involved will have cascading delete enabled by default. It means, if you delete a Stage entity<br/>
<br/>
the delete will cascade directly to Side<br/>
<br/>
the delete will cascade directly to Card and because Card and Side have a required one-to-many relationship with cascading delete enabled by default again it will then cascade from Card to Side<br/>
<br/>
So, you have two cascading delete paths from Stage to Side - which causes the exception.<br/>
<br/>
You must either make the Stage optional in at least one of the entities (i.e. remove the [Required] attribute from the Stage properties) or disable cascading delete with Fluent API (not possible with data annotations):<br/>
<br/>
modelBuilder.Entity()<br/>
.HasRequired(c => c.Stage)<br/>
.WithMany()<br/>
.WillCascadeOnDelete(false);<br/>
<br/>
modelBuilder.Entity()<br/>
.HasRequired(s => s.Stage)<br/>
.WithMany()<br/>
.WillCascadeOnDelete(false);<br/>
<br/>
```</t>