Em termos de entidades (ou objetos), você tem um Classobjeto que possui uma coleção de Studentse um Studentobjeto que possui uma coleção de Classes. Como sua StudentClasstabela contém apenas os Ids e nenhuma informação extra, o EF não gera uma entidade para a tabela de junção. Esse é o comportamento correto e é o que você espera.
Agora, ao fazer inserções ou atualizações, tente pensar em termos de objetos. Por exemplo, se você deseja inserir uma classe com dois alunos, crie o Classobjeto, os Studentobjetos, adicione os alunos à Studentscoleção da classe, adicione o Classobjeto ao contexto e chame 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();
}
Isso criará uma entrada na Classtabela, duas entradas na Studenttabela e duas entradas na StudentClasstabela ligando-as.
Você basicamente faz o mesmo para atualizações. Basta buscar os dados, modificar o gráfico adicionando e removendo objetos de coleções, chamar SaveChanges. Verifique esta questão semelhante para obter detalhes.
Editar :
De acordo com seu comentário, você precisa inserir um novo Classe adicionar dois existentes Studentsa ele:
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();
}
Como os dois alunos já estão no banco de dados, eles não serão inseridos, mas como agora estão na Studentscoleção de Class, duas entradas serão inseridas na StudentClasstabela.