irc-netcore-api/IRaCIS.Core.Infra.EFCore/Interceptor/AddDomainExt.cs

42 lines
978 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;
}
public static void AddDomainCommands(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 AddSubjectTriggerCommand { SubjectId = subject.Id, TrialId = subject.TrialId, TrialSiteId = subject.TrialSiteId };
subject.AddDomainCommand(addedEvent);
}
}
}
}