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);