如何确定记录的子女数量?

时间:2012-08-20 20:56:21

标签: nhibernate count nhibernate-criteria

大家下午好!

我正在学习NHibernate,并决定做一些改变。其中,我注意到一些领域是不必要的。所以我怀疑: 我有一个列表,我们在每个学习班中称它为Class_List,每个班级我可以有N个学生。在列表Class_List中,我还有其他属性,就像类的名称一样简单。 我怎么看是没有必要存储我在数据库中有多少学生,我会在一个查询中记录我有多少记录。这,使用NHibernate。

这可能吗?怎么样?

致以最诚挚的问候,

古斯塔沃。

编辑:我忘了说一件事......我想把这个记录的数量作为专栏返回。但是此列未映射到我的.hbm.xml文件中。

1 个答案:

答案 0 :(得分:1)

如果学生被映射为Class的集合,您可以尝试使用以下内容:

var numberOfStudents = session.CreateCriteria<Class>()
    .Add(Restrictions.IdEq(1))
        .CreateCriteria("_students", "students")
        .SetProjection(Projections.RowCount())
        .UniqueResult<Int32>();

其中“1”是班级的ID(您可以使用其他属性),“_学生”是学生集合的名称。