diff --git a/IRaCIS.Core.Application/TestService.cs b/IRaCIS.Core.Application/TestService.cs index 5b60a1ed5..81b061fd4 100644 --- a/IRaCIS.Core.Application/TestService.cs +++ b/IRaCIS.Core.Application/TestService.cs @@ -23,14 +23,14 @@ namespace IRaCIS.Application.Services private readonly IOptionsMonitor _systemEmailConfig; private readonly IOptionsMonitor _basicConfig; - + private readonly IRepository _visitTaskRepositoryy; public TestService(IRepository dicRepository, IRepository trialRepository/*, IDistributedCache cache*/ - , IOptionsMonitor systemEmailConfig, IOptionsMonitor basicConfig) + , IOptionsMonitor systemEmailConfig, IOptionsMonitor basicConfig, IRepository visitTaskRepository) { - + _visitTaskRepositoryy = visitTaskRepository; _systemEmailConfig = systemEmailConfig; _basicConfig = basicConfig; @@ -79,17 +79,17 @@ namespace IRaCIS.Application.Services // Code = u.Code + 1 //}); - var query = from item1 in _repository.Where() - join item2 in _repository.Where() on item1.ValueType equals item2.ValueType - select new - { - item1.ValueType, - dd = item2.ValueType - }; + //var query = from item1 in _repository.Where() + // join item2 in _repository.Where() on item1.ValueType equals item2.ValueType + // select new + // { + // item1.ValueType, + // dd = item2.ValueType + // }; - var list2 = query.ToList(); + //var list2 = query.ToList(); - await Task.CompletedTask; + //await Task.CompletedTask; //var list = await _repository.Where(t => t.TrialId == Guid.Parse("40400000-3e2c-0016-239b-08da581f0e74")).ToListAsync(); @@ -101,6 +101,11 @@ namespace IRaCIS.Application.Services //await _repository.BatchUpdateAsync(t => t.TrialId == Guid.Parse("40400000-3e2c-0016-239b-08da581f0e74") && t.EntityName== "ClinicalDataTrialSet", t => new DataInspection() { CreateTime= DateTime.Now.AddMonths(-2) } ); + await _visitTaskRepositoryy.UpdatePartialFromQueryAsync( Guid.Parse("78360000-3E2C-0016-9B53-08DA6A002040"), c => new VisitTask() { UpdateTime = DateTime.Now }); + + await _visitTaskRepositoryy.UpdatePartialFromQueryAsync( Guid.Parse("78360000-3E2C-0016-9B53-08DA6A002040"), c => new VisitTask() { UpdateTime = DateTime.Now.AddMinutes(1) }); + + await _repository.SaveChangesAsync(); return _userInfo.LocalIp; } diff --git a/IRaCIS.Core.Domain/Allocation/VisitTask.cs b/IRaCIS.Core.Domain/Allocation/VisitTask.cs index 91da6c0b4..20bebc85b 100644 --- a/IRaCIS.Core.Domain/Allocation/VisitTask.cs +++ b/IRaCIS.Core.Domain/Allocation/VisitTask.cs @@ -233,13 +233,13 @@ namespace IRaCIS.Core.Domain.Models public List ReadingTaskQuestionAnswerList { get; set; } = new List(); - ////病灶表 - //[JsonIgnore] - //public List LesionList { get; set; } = new List(); + //病灶表 + [JsonIgnore] + public List LesionList { get; set; } = new List(); - ////病灶答案表 - //[JsonIgnore] - //public List LesionAnswerList { get; set; } = new List(); + //病灶答案表 + [JsonIgnore] + public List LesionAnswerList { get; set; } = new List(); diff --git a/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTableAnswerRowInfo.cs b/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTableAnswerRowInfo.cs index e7d93d043..3fa463897 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTableAnswerRowInfo.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTableAnswerRowInfo.cs @@ -152,9 +152,9 @@ namespace IRaCIS.Core.Domain.Models public string RowMark { get; set; } = string.Empty; - //[JsonIgnore] - //[ForeignKey("VisitTaskId")] - //public VisitTask VisitTask { get; set; } + [JsonIgnore] + [ForeignKey("VisitTaskId")] + public VisitTask VisitTask { get; set; } //病灶答案表 [JsonIgnore] diff --git a/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTableQuestionAnswer.cs b/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTableQuestionAnswer.cs index a998b442c..243942fe3 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTableQuestionAnswer.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTableQuestionAnswer.cs @@ -79,11 +79,6 @@ namespace IRaCIS.Core.Domain.Models public ReadingTableAnswerRowInfo Lesion { get; set; } - //[JsonIgnore] - //[ForeignKey("VisitTaskId")] - //public VisitTask VisitTask { get; set; } - - [JsonIgnore] [ForeignKey("QuestionId")] @@ -95,7 +90,13 @@ namespace IRaCIS.Core.Domain.Models public ReadingTableQuestionTrial ReadingTableQuestionTrial { get; set; } - } + + + [JsonIgnore] + [ForeignKey("VisitTaskId")] + public VisitTask VisitTask { get; set; } + + } } diff --git a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs index 6ac0a430d..0e8954184 100644 --- a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs +++ b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs @@ -115,8 +115,6 @@ namespace IRaCIS.Core.Infra.EFCore modelBuilder.Entity().HasMany(t => t.GlobalVisitResultList).WithOne(s => s.GlobalVisitTask).HasForeignKey(t => t.GlobalTaskId); - //modelBuilder.Entity().HasOne(t=>t.TrialReadingQuestionAnswer).WithOne(t=>t.ReadingQuestionTrialId) - modelBuilder.Entity().HasMany(t => t.ChildList).WithOne(t => t.Parent); modelBuilder.Entity().HasMany(t => t.EarlierSubjectUserList).WithOne(t => t.OrignalSubjectUser); diff --git a/IRaCIS.Core.Infra.EFCore/Repository/IRaCISContextExtension.cs b/IRaCIS.Core.Infra.EFCore/Repository/IRaCISContextExtension.cs index 1cf85e72b..80bb27dae 100644 --- a/IRaCIS.Core.Infra.EFCore/Repository/IRaCISContextExtension.cs +++ b/IRaCIS.Core.Infra.EFCore/Repository/IRaCISContextExtension.cs @@ -88,7 +88,7 @@ namespace IRaCIS.Core.Infra.EFCore public static void EntityModifyPartialFiled(this IRaCISDBContext _dbContext,T waitModifyEntity, Expression> updateFactory) where T : Entity { var entityEntry = _dbContext.Entry(waitModifyEntity); - entityEntry.State = EntityState.Detached; + //entityEntry.State = EntityState.Detached; var list = ((MemberInitExpression)updateFactory.Body).Bindings.Select(mb => mb.Member.Name) .Select(propName => typeof(T).GetProperty(propName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)).ToList(); diff --git a/IRaCIS.Core.Infra.EFCore/Repository/Repository.cs b/IRaCIS.Core.Infra.EFCore/Repository/Repository.cs index 2046db28d..ac895deba 100644 --- a/IRaCIS.Core.Infra.EFCore/Repository/Repository.cs +++ b/IRaCIS.Core.Infra.EFCore/Repository/Repository.cs @@ -195,7 +195,7 @@ namespace IRaCIS.Core.Infra.EFCore } - /// EF跟踪方式 先查询出来,再更新部分字段 稽查的时候需要完整的实体信息 + /// EF跟踪方式 先查询出来,再更新部分字段 当在同一个事务里面需要更新同一个实体两次,请使用该方法,否则会因为重复跟踪同一个实体报错 (稽查的时候需要完整的实体信息) public async Task UpdatePartialFromQueryAsync(Guid id, Expression> updateFactory, bool autoSave = false, CancellationToken cancellationToken = default) {