Skip to content

Commit d125e84

Browse files
authored
Merge pull request #56 from IliyanAng/temp-branch
Add DB Entities Configuration Reflection
2 parents 3adf2b0 + ce2fc76 commit d125e84

File tree

2 files changed

+38
-25
lines changed

2 files changed

+38
-25
lines changed

ASP.NET Core/Data/AspNetCoreTemplate.Data/ApplicationDbContext.cs

Lines changed: 5 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ protected override void OnModelCreating(ModelBuilder builder)
5050
// Needed for Identity models configuration
5151
base.OnModelCreating(builder);
5252

53-
ConfigureUserIdentityRelations(builder);
53+
this.ConfigureUserIdentityRelations(builder);
5454

5555
EntityIndexesConfiguration.Configure(builder);
5656

@@ -74,36 +74,16 @@ protected override void OnModelCreating(ModelBuilder builder)
7474
}
7575
}
7676

77-
private static void ConfigureUserIdentityRelations(ModelBuilder builder)
78-
{
79-
builder.Entity<ApplicationUser>()
80-
.HasMany(e => e.Claims)
81-
.WithOne()
82-
.HasForeignKey(e => e.UserId)
83-
.IsRequired()
84-
.OnDelete(DeleteBehavior.Restrict);
85-
86-
builder.Entity<ApplicationUser>()
87-
.HasMany(e => e.Logins)
88-
.WithOne()
89-
.HasForeignKey(e => e.UserId)
90-
.IsRequired()
91-
.OnDelete(DeleteBehavior.Restrict);
92-
93-
builder.Entity<ApplicationUser>()
94-
.HasMany(e => e.Roles)
95-
.WithOne()
96-
.HasForeignKey(e => e.UserId)
97-
.IsRequired()
98-
.OnDelete(DeleteBehavior.Restrict);
99-
}
100-
10177
private static void SetIsDeletedQueryFilter<T>(ModelBuilder builder)
10278
where T : class, IDeletableEntity
10379
{
10480
builder.Entity<T>().HasQueryFilter(e => !e.IsDeleted);
10581
}
10682

83+
// Applies configurations
84+
private void ConfigureUserIdentityRelations(ModelBuilder builder)
85+
=> builder.ApplyConfigurationsFromAssembly(this.GetType().Assembly);
86+
10787
private void ApplyAuditInfoRules()
10888
{
10989
var changedEntries = this.ChangeTracker
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
namespace AspNetCoreTemplate.Data.Configurations
2+
{
3+
using AspNetCoreTemplate.Data.Models;
4+
using Microsoft.EntityFrameworkCore;
5+
using Microsoft.EntityFrameworkCore.Metadata.Builders;
6+
7+
public class ApplicationUserConfiguration : IEntityTypeConfiguration<ApplicationUser>
8+
{
9+
public void Configure(EntityTypeBuilder<ApplicationUser> appUser)
10+
{
11+
appUser
12+
.HasMany(e => e.Claims)
13+
.WithOne()
14+
.HasForeignKey(e => e.UserId)
15+
.IsRequired()
16+
.OnDelete(DeleteBehavior.Restrict);
17+
18+
appUser
19+
.HasMany(e => e.Logins)
20+
.WithOne()
21+
.HasForeignKey(e => e.UserId)
22+
.IsRequired()
23+
.OnDelete(DeleteBehavior.Restrict);
24+
25+
appUser
26+
.HasMany(e => e.Roles)
27+
.WithOne()
28+
.HasForeignKey(e => e.UserId)
29+
.IsRequired()
30+
.OnDelete(DeleteBehavior.Restrict);
31+
}
32+
}
33+
}

0 commit comments

Comments
 (0)