Nhibernate 使用top和order by筛选子集合

Nhibernate 使用top和order by筛选子集合,nhibernate,Nhibernate,我有一个具有子集合的父集合,使用NHibernate映射。这个孩子有一个时间栏。在某些特殊情况下,我希望筛选子集合,以便该集合仅基于时间列保存最新的X个child 类似这样的内容:parent.Childs.OrderByDescending(x=>x.Time).Take(x) 我曾考虑过使用Nhibernate过滤器,但它们似乎只针对where子句 我想对子集合应用一个过滤器,以便在检索特定父集合时,子集合只保存X个最新的子集合 如何在Nhibernate中实现这一点?您可以通过集合映射中的

我有一个具有子集合的父集合,使用NHibernate映射。这个孩子有一个时间栏。在某些特殊情况下,我希望筛选子集合,以便该集合仅基于时间列保存最新的X个child

类似这样的内容:parent.Childs.OrderByDescending(x=>x.Time).Take(x)

我曾考虑过使用Nhibernate过滤器,但它们似乎只针对where子句

我想对子集合应用一个过滤器,以便在检索特定父集合时,子集合只保存X个最新的子集合


如何在Nhibernate中实现这一点?

您可以通过集合映射中的addorderby=“Time desc”属性筛选映射文件中的子元素。此属性按时间列降序检索子元素。

您对按部分排序的看法是正确的。但我仍然需要一种方法来对NHibernate执行的查询应用TOP X子句。我希望避免从数据库获取完整集合。