Похоже, у вас есть два варианта:
1) Два совокупных корня. Добавление нового вопроса будет выглядеть так:
StudentDriver student = studentsRepository.findById(id);
Question question = someFactory.CreateForStudent(student);
questionsRepository.Persist(question);
И получение всех вопросов для студента будет обязанностью хранилища вопросов:
IList<Question> studentQuestions = questionsRepository.findByStudent(student);
По сути, у вас есть постоянные однонаправленные отношения от вопроса к ученику: вопрос "принадлежит человеку" (много-к-одному).
2) Один совокупный корень. StudentDriver является корнем агрегата, который содержит список вопросов. Добавление нового вопроса будет выглядеть так:
StudentDriver student = studentsRepository.findById(id);
student.addNewQuestion("Should you stop on a red light?", "Yes");
studentsRepository.Persist(student);
Чтобы получить все вопросы для студента, вы должны использовать что-то вроде:
IList<Question> studentQuestions = student.GetAllQuestions();
Выбор между двумя вариантами зависит от информации, которая отсутствует в ОП. Хороший способ определить совокупный корень - взглянуть на логику жизненного цикла. Вопросы типа
- Может ли Вопрос существовать без соответствующего ученика?
- Может ли Вопрос быть «переназначен» от одного ученика к другому?
- Когда вы удаляете / архивируете Студента, следует ли удалять все Вопросы?