diff --git a/Models/Recruits/RecruitScore.cs b/Models/Recruits/RecruitScore.cs index 9698b3f..283bfd9 100644 --- a/Models/Recruits/RecruitScore.cs +++ b/Models/Recruits/RecruitScore.cs @@ -83,6 +83,8 @@ namespace BMA.EHR.Recruit.Models.Recruits [MaxLength(50), Comment("สถานะคัดกรองคุณสมบัติ")] public string ExamAttribute { get; set; } = string.Empty; + public Guid ScoreImportId { get; set; } + public ScoreImport ScoreImport { get; set; } } } diff --git a/Models/Recruits/ScoreImport.cs b/Models/Recruits/ScoreImport.cs index badee62..413f3f2 100644 --- a/Models/Recruits/ScoreImport.cs +++ b/Models/Recruits/ScoreImport.cs @@ -7,7 +7,9 @@ namespace BMA.EHR.Recruit.Models.Recruits { public int Year { get; set; } - public Document ImportFile { get; set; } = new Document(); + public Guid? ImportFileId { get; set; } + + public Document ImportFile { get; set; } public virtual List Scores { get; set; } = new List(); diff --git a/Services/ImportBackgroundService.cs b/Services/ImportBackgroundService.cs index 6841bc5..64b1af8 100644 --- a/Services/ImportBackgroundService.cs +++ b/Services/ImportBackgroundService.cs @@ -615,9 +615,9 @@ public class ImportBackgroundService : BackgroundService imported.LastUpdateFullName = job.FullName ?? "System Administrator"; imported.Scores = new List(); - // Save ScoreImport — use shadow FK for ImportFile to avoid re-inserting Document - var scoreEntry = _context.ScoreImports.Add(imported); - scoreEntry.Property("ImportFileId").CurrentValue = doc.Id; + // Save ScoreImport — set ImportFileId FK directly (explicit property, not shadow) + imported.ImportFileId = doc.Id; + _context.ScoreImports.Add(imported); await _context.SaveChangesAsync(); _context.ChangeTracker.Clear(); @@ -713,7 +713,7 @@ public class ImportBackgroundService : BackgroundService // Set ScoreImportId FK for all scores in batch foreach (var score in batchScores) { - _context.Entry(score).Property("ScoreImportId").CurrentValue = scoreImport_id; + score.ScoreImportId = scoreImport_id; } await _context.BulkInsertAsync(batchScores); batchScores.Clear(); @@ -727,7 +727,7 @@ public class ImportBackgroundService : BackgroundService { foreach (var score in batchScores) { - _context.Entry(score).Property("ScoreImportId").CurrentValue = scoreImport_id; + score.ScoreImportId = scoreImport_id; } await _context.BulkInsertAsync(batchScores); }