diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index a3482c54c..aab463e19 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -34,6 +34,7 @@ namespace IRaCIS.Core.Application IRepository _readingCriterionPageRepository, IRepository _systemCriterionKeyFileRepository, IOSSService _oSSService, + IRepository _trialCriterionKeyFileRepository, IOrganInfoService _iOrganInfoService, IRepository _trialBodyPartRepository, @@ -60,29 +61,27 @@ namespace IRaCIS.Core.Application /// public async Task ReplaceSubject() { - // 查完整实体(不能只查匿名类,匿名类无实体追踪) - var trialList = await _trialRepository.AsQueryable().ToListAsync(); + // 使用 AsTracking() 确保变更追踪开启 + var trialList = await _trialRepository + .AsQueryable() + .AsTracking() // 显式启用追踪 + .ToListAsync(); - foreach (var trial in trialList) + foreach (var data in trialList) { - if (trial.TrialObjectNameList == null || !trial.TrialObjectNameList.Any()) + if (data.TrialObjectNameList == null || !data.TrialObjectNameList.Any()) continue; - foreach (var item in trial.TrialObjectNameList) + foreach (var item in data.TrialObjectNameList) { - //item.TrialName = item.TrialName - // .Replace("受试者", "试验参与者") - // .Replace("Subject", "Participant"); item.Name = item.Name .Replace("受试者", "试验参与者") .Replace("Subject", "Participant"); } + // 不调用 Update(),直接 SaveChanges } - // EF自动把List序列化为JSON字符串更新到数据库 await _trialRepository.SaveChangesAsync(); - - } ///