Имеется 3 сущности: студент и преподаватель, унаследованные от простого класса User, и предмет. Мне необходимо будет получать информацию об оценках студента по предметам определённых преподавателей.
public class User : IdentityUser
{
public string Name { get; set; }
public string Surname { get; set; }
public string Nickname { get; set; }
}
public class Instructor : User
{
public List<Subject> Subjects { get; set; }
}
public class Student : User
{
public List<Subject> Subjects { get; set; }
}
public class Subject
{
public int Id { get; set; }
public string Name { get; set; }
public int Score { get; set; } // Куда мне добавить это поле??
public List<Student> Students { get; set; }
public List<Instructor> Instructors { get; set; }
}
Здесь у меня создаются таблицы User, Subject, StudentSubject и InstructorSubject. И, собственно, я не знаю, как сделать так, чтобы поле Score попало в таблицу StudentSubject. Можно дописать вручную в миграцию, но хотелось бы всё же, чтоб автоматически добавлялось...
Автогенерированная таблица-связка, реализующая отношение many to many, расширена быть не может.
Создайте отдельную сущность StudentSubject со связями к Student и к Subject, и туда уже добавляйте Score.
А еще лучше - делайте сразу сущность Score, со связями к Student, Subject и Instructor. Так вы избежите странного ограничения "1 оценка на предмет" и сможете хранить кто из преподавателей поставил эту оценку.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости