1) правильно ли я это сделал?
Да.
2) мне нужно свойство навигации в классе Subject?
Нет. Тебе это не нужно. Это может быть полезно для определенных запросов, но это не обязательно.
3) что произойдет, если я сделаю это ...
Это другое отношение. Это будет представлять отношения один-к-одному. Но поскольку вы хотите, чтобы отношения «один ко многим», у вас должна быть навигация collection в вашей сущности:
public class Subject {
public int SubjectId { get; set; }
public String SubjectName { get; set; }
public String SubjectCategory { get; set; }
public virtual ICollection<QuestionDescriptor> Descriptors {get;set;}
}
4) если я сделаю выше, какие изменения мне нужны в конфигурации и
почему?
Для вышеуказанного изменения вы можете оставить конфигурацию отображения как есть - с единственным исключением, что теперь вы должны указать коллекцию как другую сторону отношений. Вместо .WithMany()
вы используете
.WithMany(s => s.Descriptors)
5) если я хочу получить ответы на все вопросы, относящиеся к определенной теме,
я могу получить их, запросив QuestionDescriptor, зачем тогда мне нужно
двунаправленное свойство?
Тебе это не нужно.