Я пытаюсь разработать структуру следующим образом ...многие ко многим репрезентации в EF Code First
- Я представляю курсы, которые преподают учителя.
- Для каждого из этих курсов есть любое количество экзаменов (потому что экзамен случайным образом сгенерирован, каждое поколение считается другим экзаменом), и я должен отслеживать это в базе данных.
- Экзамен может быть сделан 0 или более учениками. (И, наоборот, Студент мог принять один или несколько Экзаменов.)
- После того, как Студент сдаст экзамен (который делается через веб-интерфейс, который я уже разработал), этот Студент получает оценку для Экзамена и ExamStatus (Passed, Failed, Retake, TestOut и т. Д.)
- Есть несколько других вещей, которые я не рассматривал, например, Экзамены состоят из Вопросов (которые создаются Учителем) и т. Д. но я хорошо понимаю это.
Я почти закончил свою структуру, но я борюсь с тем, как представлять отношения студентов с экзаменами, а также работать с ExamStatus. Вот моя мысль пока. (Это поздно, так что мои извинения за глупые ошибки.)
public class Student
{
public string StudentID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
// Should this even be part of the Student POCO?
public virtual ICollection<Exam> ExamsTaken { get; set; }
}
// I know this is right - putting it here to provide all the classes in question.
public class ExamStatus
{
public int ExamStatusID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
// This is the POCO that really hangs me up.
public class Exam
{
public int ExamID { get; set; }
public int CourseID { get; set; }
public string ExamTitle { get; set; }
// Not sure if this should be part of Exam, or part of a different
// object?
public decimal? Score { get; set; }
public int? ExamStatusID { get; set; }
public virtual ICollection<Question> Questions { get; set; }
public virtual Course Course { get; set; }
public virtual ExamStatus ExamStatus { get; set; }
}
Я был бы признателен за любую помощь с этим многие-ко-многим (студентов < -> Экзамены). Думаю, я слишком много думал об этом и полностью смутил себя тем, что, вероятно, довольно просто.
Есть что-то, что я бы добавил к этой модели, если она притворяется реалистичной. Прежде всего - правильные ответы (даже если вопросы не являются испытаниями и списком всех ответов в противном случае). Во-вторых - в ExamResult я бы добавил списки вопросов (случайное подмножество вопросов) и ответы, которые дал конкретный ученик. Возможно, было бы полезно иметь шкалу баллов. Итак, какая система вы разрабатываете? – Shymep