Skip to content

Commit 0ad5472

Browse files
committed
Add SetDeleteBehavior option to EnumLookupOptions
1 parent 9d5fe89 commit 0ad5472

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

src/SpatialFocus.EntityFrameworkCore.Extensions/EnumLookupExtension.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public static void ConfigureEnumLookup(this ModelBuilder modelBuilder, EnumLooku
6767
string keyName = enumOptions.UseNumberLookup ? nameof(EnumWithNumberLookup<Enum>.Id)
6868
: nameof(EnumWithStringLookup<Enum>.Id);
6969

70-
modelBuilder.Entity(entityType.Name).HasOne(concreteType).WithMany().HasPrincipalKey(keyName).HasForeignKey(property.Name);
70+
modelBuilder.Entity(entityType.Name).HasOne(concreteType).WithMany().HasPrincipalKey(keyName).HasForeignKey(property.Name).OnDelete(enumOptions.DeleteBehavior);
7171

7272
if (enumOptions.UseNumberLookup)
7373
{

src/SpatialFocus.EntityFrameworkCore.Extensions/EnumLookupOptions.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ namespace SpatialFocus.EntityFrameworkCore.Extensions
77
{
88
using System;
99
using Humanizer;
10+
using Microsoft.EntityFrameworkCore;
1011

1112
public class EnumLookupOptions
1213
{
@@ -22,6 +23,7 @@ public static EnumLookupOptions Default
2223
enumOptions.SetNamingScheme(NamingScheme.SnakeCase);
2324
enumOptions.UseNumberLookup = true;
2425
enumOptions.UseEnumsWithAttributesOnly = false;
26+
enumOptions.DeleteBehavior = DeleteBehavior.Cascade;
2527

2628
return enumOptions;
2729
}
@@ -33,6 +35,8 @@ public static EnumLookupOptions Default
3335

3436
internal bool UseNumberLookup { get; private set; }
3537

38+
internal DeleteBehavior DeleteBehavior { get; private set; }
39+
3640
public EnumLookupOptions Pluralize()
3741
{
3842
this.postProcessingTableNamingFunction = name => name.Pluralize(false);
@@ -74,5 +78,12 @@ public EnumLookupOptions UseStringAsIdentifier()
7478

7579
return this;
7680
}
81+
82+
public EnumLookupOptions SetDeleteBehavior(DeleteBehavior deleteBehavior)
83+
{
84+
DeleteBehavior = deleteBehavior;
85+
86+
return this;
87+
}
7788
}
7889
}

0 commit comments

Comments
 (0)