public void grade(String studentEGN, List <Preference> preferences) { grades = queryManager.getStudentGrades(studentEGN); //TODO: Should we check for exams with the same name but different date? foreach (Preference preference in preferences) { preference.TotalGrade = calculateTotalGrade(studentEGN, preference.ProgrammeName); //add total grade in preference table context.Preferences.Attach(preference); context.Entry(preference).Property(x => x.TotalGrade).IsModified = true; context.SaveChanges(); } }