З точки зору сутностей (або об'єктів) у вас є Classоб'єкт, який має колекцію, Studentsі Studentоб'єкт, який має колекцію Classes. Оскільки ваша StudentClassтаблиця містить лише ідентифікатори та не має додаткової інформації, EF не генерує сутність для таблиці приєднання. Це правильна поведінка, і саме цього ви очікуєте.
Тепер, роблячи вставки або оновлення, спробуйте продумати об'єкти. Наприклад, якщо ви хочете вставити клас з двома учнями, створіть Classоб'єкт, Studentоб'єкти, додайте учнів до Studentsколекції класів, додайте Classоб'єкт у контекст і зателефонуйте SaveChanges:
using (var context = new YourContext())
{
var mathClass = new Class { Name = "Math" };
mathClass.Students.Add(new Student { Name = "Alice" });
mathClass.Students.Add(new Student { Name = "Bob" });
context.AddToClasses(mathClass);
context.SaveChanges();
}
Це створить запис у Classтаблиці, два записи в Studentтаблиці та два записи в StudentClassтаблиці, що пов'язують їх між собою.
Ви в основному робите те ж саме для оновлень. Просто забирайте дані, змінюйте графік, додаючи та вилучаючи об’єкти із колекцій, дзвоніть SaveChanges. Перевірте подібне запитання для деталей
Редагувати :
Відповідно до вашого коментаря, вам потрібно вставити нове Classі додати Studentsдо нього два :
using (var context = new YourContext())
{
var mathClass= new Class { Name = "Math" };
Student student1 = context.Students.FirstOrDefault(s => s.Name == "Alice");
Student student2 = context.Students.FirstOrDefault(s => s.Name == "Bob");
mathClass.Students.Add(student1);
mathClass.Students.Add(student2);
context.AddToClasses(mathClass);
context.SaveChanges();
}
Оскільки обидва студенти вже знаходяться в базі даних, вони не будуть вставлені, але оскільки вони зараз є в Studentsколекції Class, два записи будуть вставлені в StudentClassтаблицю.