Skip to content

Commit fc6c03e

Browse files
committed
Skip enum type if it does not have a special attribute "EnumLookupAttribute".
Also added a new setting to enable this feature. EnumLookupOptions.Default.UseEnumsWithAttirbuteOnly()
1 parent 7a45d34 commit fc6c03e

3 files changed

Lines changed: 22 additions & 0 deletions

File tree

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Text;
4+
5+
namespace SpatialFocus.EntityFrameworkCore.Extensions
6+
{
7+
public class EnumLookupAttribute : Attribute
8+
{
9+
}
10+
}

src/SpatialFocus.EntityFrameworkCore.Extensions/EnumLookupExtension.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ public static void ConfigureEnumLookup(this ModelBuilder modelBuilder, EnumLooku
2626
continue;
2727
}
2828

29+
if (enumOptions.useEnumsWithAttirbutesOnly && !propertyType.GetCustomAttributes(true).Contains(new EnumLookupAttribute()))
30+
{
31+
continue;
32+
}
33+
2934
IMutableEntityType entityType = property.DeclaringEntityType;
3035

3136
Type concreteType = enumOptions.UseNumberLookup

src/SpatialFocus.EntityFrameworkCore.Extensions/EnumLookupOptions.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public static EnumLookupOptions Default
2121
EnumLookupOptions enumOptions = new EnumLookupOptions();
2222
enumOptions.SetNamingScheme(NamingScheme.SnakeCase);
2323
enumOptions.UseNumberLookup = true;
24+
enumOptions.useEnumsWithAttirbutesOnly = false;
2425

2526
return enumOptions;
2627
}
@@ -29,6 +30,7 @@ public static EnumLookupOptions Default
2930
internal Func<string, string> NamingFunction => name => this.postProcessingTableNamingFunction(this.namingFunction(name));
3031

3132
internal bool UseNumberLookup { get; private set; }
33+
internal bool useEnumsWithAttirbutesOnly { get; private set; }
3234

3335
public EnumLookupOptions Pluralize()
3436
{
@@ -58,6 +60,11 @@ public EnumLookupOptions UseNumberAsIdentifier()
5860
return this;
5961
}
6062

63+
public EnumLookupOptions UseEnumsWithAttirbuteOnly(){
64+
useEnumsWithAttirbutesOnly = true;
65+
return this;
66+
}
67+
6168
public EnumLookupOptions UseStringAsIdentifier()
6269
{
6370
UseNumberLookup = false;

0 commit comments

Comments
 (0)