Как обновить связанные объекты с EF6 - PullRequest
0 голосов
/ 03 ноября 2018

В моей базе данных есть запись курса с некоторыми студентами.

Course Table 
Id | Name

Student Table
Id | Name | CourseId

Так, например, у меня мог бы быть курс "1 (математика)", который содержит 5 студентов, "Энди, Карл, Боб, Мэри, Гарри"

В моей модели у меня есть это:

public class Course
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual List<Student> Student { get; set; }
}

Когда я сохраняю новый курс со списком студентов, я использую этот код, и все работает нормально. Курс сохраняется в БД, и все студенты создаются с ним.

public TEntity Add(TEntity entity)
{
    this.context.Configuration.AutoDetectChangesEnabled = false;
    this.context.Configuration.ValidateOnSaveEnabled = false;
    this.EntitySet.Add(entity);
    this.context.SaveChanges();
}

Но когда мне нужно изменить список Студента, я модифицирую его из кода, но в БД новые отношения не обновляются. Я использую этот код для обновления:

public TEntity Edit(TEntity entity)
{
    this.context.Configuration.AutoDetectChangesEnabled = false;
    this.context.Configuration.ValidateOnSaveEnabled = false;

    this.EntitySet.Attach(entity);
    this.context.Entry(entity).State = EntityState.Modified;
    this.context.SaveChanges();
}

Итак, мой вопрос:

Как я могу обновить список студентов в БД с помощью Обновления Entity Framework при изменении списка курса.

Большое спасибо

РЕДАКТИРОВАТЬ 1

Это пример.

// Params (Id, Name, Students)
Course maths = new Course(1, "Maths", "Andy, Carl, Bob, Mary, Harry");

this.Add(maths);
//In DB is created the Course and the students with DB relation. No problem.

maths.Students = new List<Student>();
maths.Students.Add("Igor");
maths.Students.Add("Carl");
maths.Students.Add("Sam");
maths.Students.Add("Dante");

this.Edit(maths);
//In DB is updated the maths Course register, but the Student's list is not updated.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...