En términos de entidades (u objetos), tiene un Classobjeto que tiene una colección de Studentsy un Studentobjeto que tiene una colección de Classes. Dado que su StudentClasstabla solo contiene los ID y ninguna información adicional, EF no genera una entidad para la tabla de unión. Ese es el comportamiento correcto y eso es lo que esperas.
Ahora, cuando haga inserciones o actualizaciones, intente pensar en términos de objetos. Por ejemplo, si desea insertar una clase con dos estudiantes, cree el Classobjeto, los Studentobjetos, agregue los estudiantes a la Studentscolección de la clase , agregue el Classobjeto al contexto y llame 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();
}
Esto creará una entrada en la Classtabla, dos entradas en la Studenttabla y dos entradas en la StudentClasstabla uniéndolas.
Básicamente, haces lo mismo con las actualizaciones. Simplemente obtenga los datos, modifique el gráfico agregando y eliminando objetos de las colecciones, llame SaveChanges. Consulte esta pregunta similar para obtener más detalles.
Editar :
De acuerdo con su comentario, debe insertar uno nuevo Classy agregar dos existentes 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();
}
Dado que ambos estudiantes ya están en la base de datos, no se insertarán, pero como ahora están en la Studentscolección de Class, se insertarán dos entradas en la StudentClasstabla.