假设我在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条记录?
答案 0 :(得分:0)
简短的回答:你不能半负荷&#34;一个集合。当它被加载时,所有项目都是。
现在......你可以做的是使用filters,这只是在集合上创建的查询。
示例:
var feed = session.Get<Feed>(feedId);
var first10Items = session.Filter(feed.Items, "")
.SetMaxResults(10)
.List<FeedItem>()