я тоже Раймонд :)

я есть отношения родитель-ребенок междуTeacher а такжеStudentReport, каждыйStudentReport имеет запись поля метки времени, когда учитель закончил отчет. У меня есть запрос, чтобы найти всех учителей, которые завершили один или несколько своих отчетов за определенное количество минут назад:

    public IList<Teacher> FindRecentlyActiveTeachers(int intervalMinutes)
    {
        if (intervalMinutes <= 0)
            throw new ArgumentException("Interval must be a positive number of minutes");

        DateTime activityCutoff = DateTime.Now.AddMinutes(-1 * intervalMinutes);

        return Session.QueryOver<Teacher>()
            .Left.JoinQueryOver<StudentReport>(t => t.StudentReports)
            .Where(r => r.FirstSaveTimestamp >= activityCutoff)
            .TransformUsing(Transformers.DistinctRootEntity)
            .List<Teacher>();
    }

Это возвращает правильный список учителей, но дочерняя коллекция для каждого учителя содержит только те отчеты, которые соответствуют критерию выбора. Я хотел бы, чтобы коллекция отчетов каждого соответствующего учителя содержала все отчеты, а не только несколько отчетов, которые соответствуют критериям.

Есть ли способ, которым я могу либо загружать полную дочернюю коллекцию с нетерпением, либо отказаться от загрузки в этом запросе и положиться на ленивую загрузку?

Обновить

Это решение:

        return Session.QueryOver<Teacher>()
            .Fetch(t => t.StudentReports).Eager
            .JoinQueryOver<StudentReport>(t => t.StudentReports)
            .Where(r => r.FirstSaveTimestamp >= activityCutoff)
            .TransformUsing(Transformers.DistinctRootEntity)
            .List<Teacher>();

Ответы на вопрос(1)

Ваш ответ на вопрос