自身一致性分析
This commit is contained in:
@@ -81,28 +81,31 @@ namespace IRaCIS.Core.Infra.EFCore
|
||||
{
|
||||
modelBuilder.Entity<TableList>(builder =>
|
||||
{
|
||||
builder.HasBaseType((Type)null);
|
||||
builder.ToView(null);
|
||||
builder.HasNoKey();
|
||||
builder.HasBaseType((Type)null);
|
||||
builder.ToView(null);
|
||||
builder.HasNoKey();
|
||||
});
|
||||
|
||||
//modelBuilder.HasDbFunction(typeof(DbContext).GetMethod(nameof(GetTableList)));
|
||||
|
||||
modelBuilder.Entity<TaskAllocationRule>().HasMany(t => t.DoctorVisitTaskList).WithOne(t => t.DoctorTaskAllocationRule).HasForeignKey(t=> new { t.DoctorUserId,t.TrialId } ).HasPrincipalKey(u=> new { u.DoctorUserId,u.TrialId });
|
||||
modelBuilder.Entity<TaskAllocationRule>().HasMany(t => t.DoctorVisitTaskList).WithOne(t => t.DoctorTaskAllocationRule).HasForeignKey(t => new { t.DoctorUserId, t.TrialId }).HasPrincipalKey(u => new { u.DoctorUserId, u.TrialId });
|
||||
|
||||
modelBuilder.Entity<TaskMedicalReviewRule>().HasMany(t => t.DoctorVisitTaskList).WithOne(t => t.DoctorTaskMedicalReviewRule).HasForeignKey(t => new { t.DoctorUserId, t.TrialId }).HasPrincipalKey(u => new { u.DoctorUserId, u.TrialId });
|
||||
|
||||
modelBuilder.Entity<TaskMedicalReviewRule>().HasMany(t => t.TaskMedicalReviewList).WithOne(t => t.TaskMedicalReviewRule).HasForeignKey(t => new { t.DoctorUserId, t.TrialId }).HasPrincipalKey(u => new { u.DoctorUserId, u.TrialId });
|
||||
|
||||
modelBuilder.Entity<SubjectUser>().HasMany(t => t.SubjectArmVisitTaskList).WithOne(t=>t.SujectArm).HasForeignKey(t => new { t.SubjectId,t.ArmEnum}).HasPrincipalKey(u => new { u.SubjectId,u.ArmEnum });
|
||||
modelBuilder.Entity<VisitTask>().HasMany(t => t.JudgeVisitList).WithOne(t=>t.JudgeVisitTask);
|
||||
modelBuilder.Entity<SubjectUser>().HasMany(t => t.SubjectArmVisitTaskList).WithOne(t => t.SujectArm).HasForeignKey(t => new { t.SubjectId, t.ArmEnum }).HasPrincipalKey(u => new { u.SubjectId, u.ArmEnum });
|
||||
modelBuilder.Entity<VisitTask>().HasMany(t => t.JudgeVisitList).WithOne(t => t.JudgeVisitTask);
|
||||
|
||||
//modelBuilder.Entity<SubjectVisit>().HasMany(t => t.VisitTaskList).WithOne(t => t.SourceSubjectVisit).HasForeignKey(t=>t.SourceSubjectVisitId).HasPrincipalKey(t=>t.Id);
|
||||
|
||||
//modelBuilder.Entity<VisitTask>().HasMany(t => t.AnalysisVisitTaskList).WithOne().HasForeignKey(t => t.TaskConsistentRuleId).HasPrincipalKey(u => u.SourceSubjectVisitId);
|
||||
|
||||
modelBuilder.Entity<VisitTask>().HasMany(t => t.TaskMedicalReviewList).WithOne(t=>t.VisitTask).HasForeignKey(t => t.VisitTaskId);
|
||||
|
||||
modelBuilder.Entity<VisitTask>().HasMany(t => t.TaskMedicalReviewList).WithOne(t => t.VisitTask).HasForeignKey(t => t.VisitTaskId);
|
||||
|
||||
modelBuilder.Entity<VisitTask>().HasMany(t => t.SameSubjectVisiTaskList).WithOne().HasForeignKey(t => t.SubjectId).HasPrincipalKey(u=>u.SubjectId);
|
||||
modelBuilder.Entity<VisitTask>().HasOne(t => t.Subject).WithMany(s=>s.SubjectVisitTaskList).HasForeignKey(t => t.SubjectId);
|
||||
|
||||
|
||||
modelBuilder.Entity<Dictionary>().HasMany(t => t.ChildList).WithOne(t => t.Parent);
|
||||
modelBuilder.Entity<SubjectUser>().HasMany(t => t.EarlierSubjectUserList).WithOne(t => t.OrignalSubjectUser);
|
||||
@@ -141,7 +144,7 @@ namespace IRaCIS.Core.Infra.EFCore
|
||||
modelBuilder.Entity(entityType.ClrType).Property<Guid>(nameof(Entity.Id)).HasValueGenerator<MySequentialGuidValueGenerator>();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -174,7 +177,7 @@ namespace IRaCIS.Core.Infra.EFCore
|
||||
public virtual DbSet<TrialExperienceCriteria> TrialExperienceCriteria { get; set; }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -284,7 +287,7 @@ namespace IRaCIS.Core.Infra.EFCore
|
||||
|
||||
#region Trial
|
||||
public virtual DbSet<Trial> Trial { get; set; }
|
||||
|
||||
|
||||
|
||||
public virtual DbSet<TrialDictionary> TrialDictionary { get; set; }
|
||||
public virtual DbSet<TrialStatusDetail> TrialDetail { get; set; }
|
||||
@@ -425,7 +428,7 @@ namespace IRaCIS.Core.Infra.EFCore
|
||||
public override int SaveChanges()
|
||||
{
|
||||
//UpdateAuditInfo().GetAwaiter();
|
||||
AddAudit().GetAwaiter();
|
||||
AddAudit().GetAwaiter();
|
||||
return base.SaveChanges();
|
||||
}
|
||||
|
||||
@@ -438,7 +441,7 @@ namespace IRaCIS.Core.Infra.EFCore
|
||||
}
|
||||
|
||||
|
||||
public async Task AddAudit()
|
||||
public async Task AddAudit()
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -449,9 +452,9 @@ namespace IRaCIS.Core.Infra.EFCore
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -460,71 +463,71 @@ namespace IRaCIS.Core.Infra.EFCore
|
||||
//private async Task UpdateAuditInfo()
|
||||
//{
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//ChangeTracker.DetectChanges(); // Important!
|
||||
|
||||
//// 获取所有更改,删除,新增的实体,但排除审计实体(避免死循环)
|
||||
//var entities = ChangeTracker.Entries()
|
||||
// .Where(u => (u.State == EntityState.Modified || u.State == EntityState.Deleted || u.State == EntityState.Added)).Where(x=>x.Entity.GetType()!=typeof(data)).ToList();
|
||||
//AuditingData auditingData = new AuditingData(this, _userInfo);
|
||||
//await auditingData.IncomingEntitys(entities);
|
||||
//var items = entities.SelectMany(x => x.Entity.GetType().ToString());
|
||||
//ChangeTracker.DetectChanges(); // Important!
|
||||
|
||||
//foreach (var t in entities)
|
||||
//{
|
||||
// switch (t.State)
|
||||
// {
|
||||
//// 获取所有更改,删除,新增的实体,但排除审计实体(避免死循环)
|
||||
//var entities = ChangeTracker.Entries()
|
||||
// .Where(u => (u.State == EntityState.Modified || u.State == EntityState.Deleted || u.State == EntityState.Added)).Where(x=>x.Entity.GetType()!=typeof(data)).ToList();
|
||||
//AuditingData auditingData = new AuditingData(this, _userInfo);
|
||||
//await auditingData.IncomingEntitys(entities);
|
||||
//var items = entities.SelectMany(x => x.Entity.GetType().ToString());
|
||||
|
||||
// case EntityState.Deleted:
|
||||
//foreach (var t in entities)
|
||||
//{
|
||||
// switch (t.State)
|
||||
// {
|
||||
|
||||
// break;
|
||||
// case EntityState.Modified:
|
||||
// case EntityState.Deleted:
|
||||
|
||||
// if (t.Entity is IAuditUpdate updateEntity1)
|
||||
// {
|
||||
// updateEntity1.UpdateTime = DateTime.UtcNow.AddHours(8);
|
||||
// updateEntity1.UpdateUserId = _userInfo.Id;
|
||||
// }
|
||||
// break;
|
||||
// case EntityState.Modified:
|
||||
|
||||
// if (t.Entity is IAuditUpdate updateEntity1)
|
||||
// {
|
||||
// updateEntity1.UpdateTime = DateTime.UtcNow.AddHours(8);
|
||||
// updateEntity1.UpdateUserId = _userInfo.Id;
|
||||
// }
|
||||
|
||||
|
||||
// break;
|
||||
// //添加的时候,更新审计字段也赋值
|
||||
// case EntityState.Added:
|
||||
// break;
|
||||
// //添加的时候,更新审计字段也赋值
|
||||
// case EntityState.Added:
|
||||
|
||||
// ////// 仓储添加时 就有id了
|
||||
// //if (t.Entity is Entity entity && entity.Id == Guid.Empty)
|
||||
// //{
|
||||
// // entity.Id = NewId.NextGuid();
|
||||
// //}
|
||||
// ////// 仓储添加时 就有id了
|
||||
// //if (t.Entity is Entity entity && entity.Id == Guid.Empty)
|
||||
// //{
|
||||
// // entity.Id = NewId.NextGuid();
|
||||
// //}
|
||||
|
||||
// if (t.Entity is IAuditAdd addEntity)
|
||||
// {
|
||||
// if (addEntity.CreateTime == default(DateTime))
|
||||
// {
|
||||
// addEntity.CreateTime = DateTime.UtcNow.AddHours(8);
|
||||
// }
|
||||
// if (t.Entity is IAuditAdd addEntity)
|
||||
// {
|
||||
// if (addEntity.CreateTime == default(DateTime))
|
||||
// {
|
||||
// addEntity.CreateTime = DateTime.UtcNow.AddHours(8);
|
||||
// }
|
||||
|
||||
// addEntity.CreateUserId = _userInfo.Id;
|
||||
// }
|
||||
// addEntity.CreateUserId = _userInfo.Id;
|
||||
// }
|
||||
|
||||
// if (t.Entity is IAuditUpdate updateEntity)
|
||||
// {
|
||||
// updateEntity.UpdateTime = DateTime.UtcNow.AddHours(8);
|
||||
// updateEntity.UpdateUserId = _userInfo.Id;
|
||||
// }
|
||||
// if (t.Entity is IAuditUpdate updateEntity)
|
||||
// {
|
||||
// updateEntity.UpdateTime = DateTime.UtcNow.AddHours(8);
|
||||
// updateEntity.UpdateUserId = _userInfo.Id;
|
||||
// }
|
||||
|
||||
// if (t.Entity is IAuditAddWithUserName addEntity3)
|
||||
// {
|
||||
// addEntity3.CreateTime = DateTime.UtcNow.AddHours(8);
|
||||
// addEntity3.CreateUserId = _userInfo.Id;
|
||||
// addEntity3.CreateUser = _userInfo.RealName;
|
||||
// }
|
||||
// break;
|
||||
// }
|
||||
//}
|
||||
// if (t.Entity is IAuditAddWithUserName addEntity3)
|
||||
// {
|
||||
// addEntity3.CreateTime = DateTime.UtcNow.AddHours(8);
|
||||
// addEntity3.CreateUserId = _userInfo.Id;
|
||||
// addEntity3.CreateUser = _userInfo.RealName;
|
||||
// }
|
||||
// break;
|
||||
// }
|
||||
//}
|
||||
|
||||
|
||||
//}
|
||||
@@ -567,7 +570,7 @@ namespace IRaCIS.Core.Infra.EFCore
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (e.Entry.Entity is IAuditAddWithUserName addEntity2)
|
||||
{
|
||||
switch (e.Entry.State)
|
||||
|
||||
Reference in New Issue
Block a user