Entity Framework Core - operacje na danych w relacji wiele do wielu w

0

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?

0

Wystarczy, że stworzysz tabelę Student i Class. Tabela łącząca stworzy się sama. Analogiczny przykład z Student i Student masz tutaj:
https://docs.microsoft.com/pl-pl/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application

0
west napisał(a):

Wystarczy, że stworzysz tabelę Student i Class. Tabela łącząca stworzy się sama. Analogiczny przykład z Student i Student masz tutaj:
https://docs.microsoft.com/pl-pl/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application

W core tak nie ma.. https://github.com/dotnet/efcore/issues/1368

0

@west: potrzebne tabele mam utworzone migracja. Chodzi mi o to jak obslugiwac te tabele za pomoca entity framework

1 użytkowników online, w tym zalogowanych: 0, gości: 1