Files
IM_NEW/User.Infrastructure/UserDbContext.cs
2026-05-09 17:06:30 +08:00

34 lines
1.2 KiB
C#

using IdentityService.Domain.Entities;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
namespace IdentityService.Infrastructure
{
public class UserDbContext : IdentityDbContext<IdentityService.Domain.Entities.User, Role, Guid>
{
private IMediator? mediator;
public DbSet<IdentityService.Domain.Entities.User> Users { get; private set; }
public UserDbContext(DbContextOptions<UserDbContext> options, IMediator mediator)
: base(options)
{
this.mediator = mediator;
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.ApplyConfigurationsFromAssembly(this.GetType().Assembly);
modelBuilder.EnableSoftDeletionGlobalFilter();
}
public async override Task<int> SaveChangesAsync(bool acceptAllChangesOnSuccess, CancellationToken cancellationToken = default)
{
if (mediator != null)
{
await mediator.DispatchDomainEventsAsync(this);
}
return await base.SaveChangesAsync(acceptAllChangesOnSuccess, cancellationToken);
}
}
}