using Microsoft.EntityFrameworkCore; using UserManagement.Domain.Entities; namespace UserManagement.Infrastructure { public class ApplicationDbContext : DbContext { public ApplicationDbContext(DbContextOptions options) : base(options) { } public DbSet Users { get; set; } public DbSet Roles { get; set; } public DbSet UserRoles { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity() .HasIndex(u => u.UserName) .IsUnique(); modelBuilder.Entity() .HasIndex(r => r.Name) .IsUnique(); modelBuilder.Entity() .HasKey(ur => new { ur.UserId, ur.RoleId }); modelBuilder.Entity() .HasOne(ur => ur.User) .WithMany(u => u.UserRoles) .HasForeignKey(ur => ur.UserId); modelBuilder.Entity() .HasOne(ur => ur.Role) .WithMany(r => r.UserRoles) .HasForeignKey(ur => ur.RoleId); } } }