NHibernate 标准和预测

标签 nhibernate nhibernate-criteria

我的实体如下所示:

(1) 类(class)(详细) (2) 学生(详细) (3) StudentEnrolment(具有学生到类(class)的一对多映射)

现在我正在尝试创建一个投影类(称为 CourseSummary),其中包含类(class)的几个字段以及该类(class)的学生总数(称为 TotalEnrolments)。在下面的代码中,我也包括了类(class)的校园(尽管与我的问题无关)。

我已经到达这里:

                var courseSummaries = session.CreateCriteria<Course>()
               .CreateAlias("Campus", "cmp")
               .SetProjection(Projections.ProjectionList()
                                  .Add(Projections.Property("CourseId"), "CourseId")
                                  .Add(Projections.Property("StartDate"), "StartDate")
                                  .Add(Projections.Property("EndDate"), "EndDate")
                                  .Add(Projections.Property("cmp.CampusId"), "CampusId")
                                 //What here for "TotalEnrolments"?
                                  ).SetResultTransformer(Transformers.AliasToBean<Course>())
               .List<Course>();

但是我该如何加入 StudentEnrolment 类并从中获取相关记录的总数呢?

我是 NHibernate 世界的新手,因此我的问题可能非常初步。

谢谢

最佳答案

var courseSummaries = session.CreateCriteria<Course>("c")
       .CreateAlias("Campus", "cmp")
       .SetProjection(Projections.ProjectionList()
           .Add(Projections.Property("CourseId"), "CourseId")
           .Add(Projections.Property("StartDate"), "StartDate")
           .Add(Projections.Property("EndDate"), "EndDate")
           .Add(Projections.Property("cmp.CampusId"), "CampusId")
           .Add(Projections.Subquery(DetachedCriteria.For<Student>()
               .Add(Restriction.Eq("Course.Id", "c.Id"))
               .SetProjections(Projections.RowCount()), "TotalStudents")
       )
       .SetResultTransformer(Transformers.AliasToBean<CourseSummary>())
       .List<CourseSummary>();

关于NHibernate 标准和预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14309864/

相关文章:

NHibernate QueryOver 限制字符串长度

c# - NHibernate AliasToBean 转换器关联

c# - QueryOver: 选择 ... where property in (...)

NHibernate 3.2 多对多代码映射

NHibernate 映射不起作用

NHibernate QueryOver 投影 - 将集合投影到 DTO

NHibernate 3.0 使用子字符串搜索

c# - 如何将 SQL 的 'translate' 除了 (N)Hibernate (Criteria API)?

c# - NHibernate 2.1 示例?

java - 如何在不知道 id 的情况下更新 Hibernate Criteria 中的对象