LINQ добавление нового элемента (ученика) в список другого типа (курсов) с помощью класса соединителя - PullRequest
0 голосов
/ 27 октября 2018

Вот мой сценарий:

У меня есть: Моя база данных

Моя цель: чтобы добавить нового ученика в список классов.

Мой код:

    public void addStudent()
    {
        using (RegistarDbContext db = new RegistarDbContext())
        {
            var query = db.tblCourses
                .SelectMany(s => s.tblStudents)
                .ToList();



            query.Add(selectedStudentList);
            db.SaveChanges();
        }

    }

Контекст кода:
selectedStudentList = типиз (tblStudent), который выбран из выпадающего списка

Другая информация:
При просмотре программы кажется, что мой ученик добавлен в запрос переменной, но не может сохранить изменения.

1 Ответ

0 голосов
/ 30 октября 2018

В случае, если кто-то еще хотел бы знать ответ на мой вопрос:

        public void addStudent()
        {
        //Get the course ID thats been selected.
        var selectedCourseID = selectedCourseList.courseID;

        using (RegistarDbContext db = new RegistarDbContext())
        {
            //Find the course in the database.
            var course = db.tblCourses.Where(c => c.courseID == selectedCourseID).FirstOrDefault();

            //Find the student to add from the database.
            var student = db.tblStudents.Where(s => s.studentID == selectedStudentList.studentID).FirstOrDefault();

            if (checkIfExists(course, student))
                MessageBox.Show("The student is already in the list!", "ERROR: ", MessageBoxButton.OK, MessageBoxImage.Error);
            else
            {
                //Add it to the coruses student list.
                course.tblStudents.Add(student);
                db.SaveChanges();
                MessageBox.Show(String.Format("{0} was successfully enrolled in {1}!", student.fullName, course.name), "Student successfully added!", MessageBoxButton.OK, MessageBoxImage.Information);
            }
        }
    }

Что я выучил:
При добавлении студента в курс, который имеетСписок студентов, вы должны выбрать и курс, и студент бросил вашу базу данных.

Только тогда вы можете применить функцию .add, чтобы сохранить изменения в вашей базе данных!

Я надеюсь, что этосэкономит кому-то количество часов, которые я потратил на выяснение этого:)

...