diff --git a/src/EFCore.SqlServer/Metadata/Conventions/SqlServerOnDeleteConvention.cs b/src/EFCore.SqlServer/Metadata/Conventions/SqlServerOnDeleteConvention.cs index 53f9bcef914..297c9e489c4 100644 --- a/src/EFCore.SqlServer/Metadata/Conventions/SqlServerOnDeleteConvention.cs +++ b/src/EFCore.SqlServer/Metadata/Conventions/SqlServerOnDeleteConvention.cs @@ -86,7 +86,9 @@ protected override DeleteBehavior GetTargetDeleteBehavior(IConventionForeignKey var inverseDeleteBehavior = DefaultDeleteBehavior(inverseSkipNavigation); if (deleteBehavior == DeleteBehavior.Cascade - && inverseDeleteBehavior == DeleteBehavior.Cascade) + && inverseDeleteBehavior == DeleteBehavior.Cascade + && !(inverseSkipNavigation.ForeignKey!.GetDeleteBehaviorConfigurationSource() == ConfigurationSource.Explicit + && inverseSkipNavigation.ForeignKey!.DeleteBehavior != DeleteBehavior.Cascade)) { deleteBehavior = DeleteBehavior.ClientCascade; }