添加项目文件。

This commit is contained in:
2026-05-09 17:06:30 +08:00
parent c60f5fe117
commit 720ef957d4
378 changed files with 14843 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
using IM.DomainCommons;
using MediatR;
using Microsoft.EntityFrameworkCore;
namespace IM.Infrastructure.Efcore
{
public class BaseDbContext : DbContext
{
private IMediator? mediator;
public BaseDbContext(DbContextOptions options, IMediator mediator)
: base(options)
{
this.mediator = mediator;
}
public override async Task<int> SaveChangesAsync(bool acceptAllChangesOnSuccess, CancellationToken cancellationToken = default)
{
if (mediator != null)
{
await mediator.DispatchDomainEventsAsync(this);
}
var softDeletedEntities = ChangeTracker
.Entries<ISoftDelete>()
.Where(x => x.State == EntityState.Modified && x.Entity.IsDeleted)
.ToList();
var result = await base.SaveChangesAsync(acceptAllChangesOnSuccess, cancellationToken);
softDeletedEntities.ForEach(e => e.State = EntityState.Detached);
return result;
}
}
}