В моей базе данных есть запись курса с некоторыми студентами.
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.