using back.DataModels; using Microsoft.EntityFrameworkCore; namespace back.persistance.data.relations; public class RoleRelationEstablisher : IRelationEstablisher { public void EstablishRelation(ModelBuilder modelBuilder) { modelBuilder.Entity(entity => { entity.HasOne(d => d.BaseRoleModel).WithMany(p => p.InverseBaseRoleModel).HasForeignKey(d => d.BaseRoleModelId); entity.HasMany(d => d.Permissions).WithMany(p => p.Roles) .UsingEntity>( "RolePermission", r => r.HasOne().WithMany() .HasForeignKey("PermissionId") .OnDelete(DeleteBehavior.ClientSetNull), l => l.HasOne().WithMany() .HasForeignKey("RoleId") .OnDelete(DeleteBehavior.ClientSetNull), j => { j.HasKey("RoleId", "PermissionId"); j.ToTable("RolePermissions"); }); }); } }