我在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名,而不是在代码中删除它们。
答案 0 :(得分:0)
您可以手动执行。从Comments
映射中忽略属性Post
,并使用Take(X)
手动加载它:
// query posts
foreach (var post in posts)
{
post.Comments = Session.QueryOver<Comments>()
.Where(x => x.PostId == post.Id)
.Take(X)
.Future();
}
使用Future
代替List
,它将对所有注释执行一次数据库往返。
答案 1 :(得分:-1)
应该可以使用过滤器。请在此处阅读:http://nhibernate.info/doc/nh/en/index.html#filters