Skip to content

Enabling Cascade Delete in EF Core Code First DB Using the Fluent API

Entity Framework Core Default Behaviour on Delete

Cascade delete saves a developer time by not needing to write boilerplate code for related data when the parent data in the relationship has been deleted. However in Entity Framework Core it is not the default behaviour. It takes a more conservative view and sets the on delete behaviour to restrict (StackOverflow Question where EF Core Team Member Confirms) which the documentation defines as:

Restrict: The delete operation is not applied to dependent entities. The dependent entities remain unchanged. – EF Core Documentation

Compared with the definition of cascade:

Cascade: Dependent entities are also deleted. – EF Core Documentation

Enabling Cascade Delete Using The Fluent API

If you have created your database using Code First then the fix is simple. When defining your relationships tell EF that you want the delete action to be a cascade one. This needs the use of an additional using Microsoft.Data.Entity.Metadata which contains DeleteBehaviour:

Published in.NET CoreC#Entity Framework

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *