diff --git a/University/DatabaseImplement/Implements/StatementStorage.cs b/University/DatabaseImplement/Implements/StatementStorage.cs index 13b5973..25581f5 100644 --- a/University/DatabaseImplement/Implements/StatementStorage.cs +++ b/University/DatabaseImplement/Implements/StatementStorage.cs @@ -13,8 +13,6 @@ namespace UniversityDatabaseImplement.Implements { using var context = new UniversityDatabase(); return context.Statements - .Include(x => x.StatementStudents) - .ThenInclude(x => x.Student) .Select(x => x.GetViewModel) .ToList(); } @@ -22,8 +20,6 @@ namespace UniversityDatabaseImplement.Implements { using var context = new UniversityDatabase(); return context.Statements - .Include(x => x.StatementStudents) - .ThenInclude(x => x.Student) .Where(x => ( (!model.Id.HasValue || x.Id == model.Id) ) @@ -39,8 +35,6 @@ namespace UniversityDatabaseImplement.Implements } using var context = new UniversityDatabase(); return context.Statements - .Include(x => x.StatementStudents) - .ThenInclude(x => x.Student) .FirstOrDefault(x => (model.Id.HasValue && x.Id == model.Id))?.GetViewModel; } public StatementViewModel? Insert(StatementBindingModel model) diff --git a/University/DatabaseImplement/Implements/StudentStorage.cs b/University/DatabaseImplement/Implements/StudentStorage.cs index c22b540..8510a19 100644 --- a/University/DatabaseImplement/Implements/StudentStorage.cs +++ b/University/DatabaseImplement/Implements/StudentStorage.cs @@ -15,6 +15,8 @@ namespace UniversityDatabaseImplement.Implements return context.Students .Include(x => x.StudentExaminationResults) .ThenInclude(x => x.ExaminationResult) + .Include(x => x.StatementStudents) + .ThenInclude(x => x.Statement) .Select(x => x.GetViewModel) .ToList(); } @@ -24,6 +26,8 @@ namespace UniversityDatabaseImplement.Implements return context.Students .Include(x => x.StudentExaminationResults) .ThenInclude(x => x.ExaminationResult) + .Include(x => x.StatementStudents) + .ThenInclude(x => x.Statement) .Where(x => ( (!model.Id.HasValue || x.Id == model.Id) && (string.IsNullOrEmpty(model.Name) || x.Name.Contains(model.Name)) @@ -42,6 +46,8 @@ namespace UniversityDatabaseImplement.Implements return context.Students .Include(x => x.StudentExaminationResults) .ThenInclude(x => x.ExaminationResult) + .Include(x => x.StatementStudents) + .ThenInclude(x => x.Statement) .FirstOrDefault(x => (!string.IsNullOrEmpty(model.Name) && x.Name== model.Name) || (model.Id.HasValue && x.Id == model.Id))?.GetViewModel; } diff --git a/University/DatabaseImplement/Models/Statement.cs b/University/DatabaseImplement/Models/Statement.cs index 629599d..04c4442 100644 --- a/University/DatabaseImplement/Models/Statement.cs +++ b/University/DatabaseImplement/Models/Statement.cs @@ -17,20 +17,6 @@ namespace UniversityDatabaseImplement.Models public virtual List StatementStudents { get; set; } = new(); [ForeignKey("StatementId")] public virtual List ExaminationResults { get; set; } = new(); - private Dictionary? _students = null; - public Dictionary Students - { - get - { - if(_students == null) - { - _students = StatementStudents.ToDictionary( - x => x.Student.Id, x => x.Student as IStudentModel); - } - - return _students; - } - } public static Statement Create(StatementBindingModel model) { return new Statement @@ -54,7 +40,6 @@ namespace UniversityDatabaseImplement.Models Id = Id, Date = Date, HoursCount = HoursCount, - Students = Students }; } diff --git a/University/DatabaseImplement/Models/Student.cs b/University/DatabaseImplement/Models/Student.cs index 0637590..cfba763 100644 --- a/University/DatabaseImplement/Models/Student.cs +++ b/University/DatabaseImplement/Models/Student.cs @@ -31,6 +31,22 @@ namespace UniversityDatabaseImplement.Models return _results; } } + + private Dictionary? _statements; + [NotMapped] + public Dictionary Statements + { + get + { + if (_statements == null) + { + _statements = StatementStudents.ToDictionary( + x => x.Statement.Id, x => x.Statement as IStatementModel); + } + + return _statements; + } + } public static Student Create(StudentBindingModel model) { return new Student @@ -54,7 +70,8 @@ namespace UniversityDatabaseImplement.Models Id = Id, Name = Name, RecordCardNumber = RecordCardNumber, - Results = Results + Results = Results, + Statements = Statements }; }