仅使用Fluent NHibernate HasMany拉动顶部X

仅使用Fluent NHibernate HasMany拉动顶部X,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,我在Fluent NHibernate Map中有以下映射 public class PostMap : ClassMap<Post> { public PostMap() { Id(i => i.Id).GeneratedBy.GuidComb(); Map(x => x.SiteId); Map(x => x.Message); Map(x => x.DateCreated);

我在Fluent NHibernate Map中有以下映射

public class PostMap : ClassMap<Post>
{
    public PostMap()
    {
        Id(i => i.Id).GeneratedBy.GuidComb();
        Map(x => x.SiteId);
        Map(x => x.Message);
        Map(x => x.DateCreated);
        Map(x => x.DateModified);
        HasMany(x => x.Comments)
            .OrderBy("DateCreated DESC")
            .ReadOnly()
            .Not.LazyLoad();
    }
}

每篇文章都有很多评论,我想做的只是从数据库中恢复前5名,而不是在代码中删除它们。

应该可以使用过滤器。阅读此处:

您可以手动操作。忽略Post映射中的属性注释,并使用TakeX手动加载它:


使用Future而不是List,它将对所有评论执行一次DB往返。

过滤器在这里有什么帮助?我需要一个TOP/TAKE而不是WHERE子句。
// query posts
foreach (var post in posts)
{
    post.Comments = Session.QueryOver<Comments>()
                        .Where(x => x.PostId == post.Id)
                        .Take(X)                       
                        .Future();
}