Nie jestem specjalistą. Z góry zaznaczam.
Ale to, co przyszło mi do głowy to czy nie lepiej stworzyć modele, które będą miały w sobie listy?
Poza tym skoro masz relacje w bazie danych to po co jeszcze kombinować w modelach?
Ja bym zrobić coś w stylu:
MODELE
public class Oceny
{
// tutaj właściwości
public int IdOceny {get; set;}
public string Przedmiot { get; set; }
public int IdNauczyciela { get; set; } // no i tutaj jest jakby relacja z tabelą Nauczyciele, która też ma id dla danego nauczyciela
}
Ja raczej tak robiłem. Możesz spróbować