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