Entity Framework Core Interview Question #46
What is cascade delete in EF Core?
Relationships, Navigation Properties & Loading Data Junior Beginner
Quick Interview Answer
Cascade delete means deleting a principal can automatically cause related dependent rows to be deleted when the relationship and database behavior are configured for cascading.
Detailed Explanation
Cascade delete means deleting a principal can automatically cause related dependent rows to be deleted when the relationship and database behavior are configured for cascading.
It is useful when dependents have no valid meaning without the principal, such as OrderItems belonging to an Order.
Cascade behavior should be reviewed carefully because deleting one entity can affect many rows. For important production data, the business consequences must be understood before enabling cascades.
Code Example
modelBuilder.Entity<OrderItem>()
.HasOne(i => i.Order)
.WithMany(o => o.Items)
.HasForeignKey(i => i.OrderId)
.OnDelete(DeleteBehavior.Cascade);