31 lines
824 B
C#
31 lines
824 B
C#
|
|
|
|
using IRaCIS.Core.Domain;
|
|
using IRaCIS.Core.Domain.Models;
|
|
using Microsoft.EntityFrameworkCore.ChangeTracking;
|
|
|
|
namespace IRaCIS.Core.Infra.EFCore;
|
|
|
|
|
|
|
|
public static class DBContext_Ext
|
|
{
|
|
public static void AddDomainEvents(this DbContext context)
|
|
{
|
|
var changeTracker = context.ChangeTracker;
|
|
|
|
// 遍历 ChangeTracker 中的实体
|
|
foreach (var entry in changeTracker.Entries<Subject>())
|
|
{
|
|
var subject = entry.Entity;
|
|
|
|
if (entry.State == EntityState.Added)
|
|
{
|
|
// 受试者添加 触发访视自动添加
|
|
var addedEvent = new AddSubjectEvent { SubjectId = subject.Id, TrialId = subject.TrialId, TrialSiteId = subject.TrialSiteId };
|
|
|
|
subject.AddDomainEvent(addedEvent);
|
|
}
|
|
}
|
|
}
|
|
} |