Mam model dla 3 powiązanych tabel:
public class Student
{
public Student()
{
StudentsClassess = new HashSet<StudentsClassess>();
}
public int Id{get;set;}
public string Name{get;set;}
public string Lastname{get;set;}
public string Email{get;set;
public virtual ICollection<StudentsClassess> StudentsClasses{get;set;}
}
public class Class
{
public Class()
{
StudentsClassess = new HashSet<StudentsClassess>();
}
public int Id{get;set;}
public string Name{get;set;}
public string Signature{get;set;}
public virtual ICollection<StudentsClassess> StudentsClassess{get;set;}
}
public class StudentsClassess
{
public int StudentId{get;set;}
public int ClassId{get;set;}
public virtual Student Student{get;set;}
public virtual Class Class {get;set;}
}
public class SchoolDbContext:DbContext
{
// ...
public virtual DbSet<Student> Students{get;set;}
public virtual DbSet<Class> Classess{get;set;}
public virtual DbSet<StudentsClassess> StudentsClassess{get;set;}
// ...
}
Chciałem teraz za pomoca Entity Framework Core przeprowadzac rozne operacje CRUD na obiektach class Student i Class. W jaki sposob to mge zrobic? Czy tabela posredniczaca StudentsClassess będzie sie uzupełniała automatycznie?
Chciałem np dodać do bazy nowy obiekt Class z przypisanymi studentami ale obiekt Class udostepnia tylko połączenie do tabeli posredniczacej
public class SchoolService
{
public Class Create(Class newclass)
{
newclass.StudentsClassess= // nie wiem co tu wstawić, a nie moge odwolac sie bezposrednio do Student
schoolContext.Classess.Add(newclass);
schoolContext.SaveChanges();
}
}
W jaki sposób obsługiwać takie operacje, jakies dodawanie nowych obiektów Classes, nowych Studentów, aktualizacja tych danych itp?