Прежде всего, пожалуйста, прости меня за то, что мой словарный запас немного ограничен NHibernate, поэтому я могу назвать что-то не так ... вот мой вопрос:
Результат, который я ищу, - это счетотличные студенты для курса.У меня есть три класса: курсы, студенты, курсы.Курсы содержат отношение HasMany с CourseDates.CourseDates - это коллекция дат, в которые произошел каждый класс, и содержит отношение HasAndBelongsToMany с классом студентов.
Что мне нужно сделать, так это получить четкое количество студентов за все даты, когда курс прошел.Вот пример оператора SQL, который я хочу скопировать.Результатом является число (длинный).Этот конкретный пример дает результат: 5
SELECT COUNT(DISTINCT dbo.Literacy_Course_DatesStudents.IDStudent) AS StudentCount FROM
Literacy_Course_DatesStudents INNER JOIN Literacy_Course_Dates ON Literacy_Course_DatesStudents.IDDate = Literacy_Course_Dates.IDDate WHERE (Literacy_Course_Dates.IDCourse = 28)
Ниже приведен запрос, написанный из нового класса, который я создал специально для этого отчета ... но я продолжаю получать сообщение об ошибке:Исключение типа 'Antlr.Runtime.MissingTokenException' было сгенерировано.Обычно я думал, что эта ошибка выдается, когда у меня не было класса CourseEnrolledCount, импортированного в другие классы, но я сделал это.
Dim q As Castle.ActiveRecord.Queries.SimpleQuery(Of CourseEnrolledCount)
q = New Castle.ActiveRecord.Queries.SimpleQuery(Of CourseEnrolledCount)(GetType(Literacy.Courses.CourseDates), "select new CourseEnrolledCount(Count(Distinct o.IDStudent in elements(t.Students) as o)) from CourseDates t Where t.Course.IDCourse = :courseid")
Дайте мне знать, если мне нужно предоставить дополнительную информацию.Я надеюсь, что я проясняю свой вопрос.Заранее спасибо за ваше время.