流畅的NHibernate:从集合中加载固定数量的项目

时间:2011-02-02 01:57:43

标签: sql nhibernate fluent-nhibernate

假设我在Fluent NHibernate中有一个实体,如下所示:

 public class Feed
{
    public virtual int FeedId { get; set; }
    public virtual string FeedUri { get; set; }
    public virtual string FeedTitle { get; set; }
    public virtual string FeedHomePageUri { get; set; }

    public virtual IList<FeedItem> Items { get; set; }
}

当我在这个实体上加载Items集合时,有没有办法告诉我的查询引擎只加载集合中的前10个项目?

假设这个系列中有10000个项目 - 我只想查看前10个。有没有办法做到这一点?

我知道这个集合是懒惰的,这不是我要问的。当我弹出泡泡并最终加载所有内容时,当我只想要前10个时,如何阻止它查询所有10000条记录?

1 个答案:

答案 0 :(得分:0)

简短的回答:你不能半负荷&#34;一个集合。当它被加载时,所有项目都是。

现在......你可以做的是使用filters,这只是在集合上创建的查询。

示例:

var feed = session.Get<Feed>(feedId);
var first10Items = session.Filter(feed.Items, "")
                          .SetMaxResults(10)
                          .List<FeedItem>()