我有两个简单的实体:
public class Post {
public virtual int Id {get;set;}
public virtual string Title {get;set;}
public virtual IList<Comment> {get;set;}
}
和
public class Comment {
public virtual int Id {get;set;}
public virtual string Text {get;set;}
public virtual Post Post {get;set;}
}
对应的映射看起来像:
HasMany(x => x.Comment).LazyLoad();
References(x => x.Post).Not.LazyLoad();
我的目标是只在我想要的时候在帖子中加载评论,否则不加载评论。类似的东西:
var posts = session.QueryOver<Post>().ToList() // load posts without comments
var posts = session.QueryOver<Post>().FetchMany(x => x.Comments).ToList(); // load posts with comments
我使用FluentNHibernate 2.0.1和NHibernate 4和Postgres 9.2
答案 0 :(得分:1)
延迟加载约定主要仅在列表中使用,当我尝试在非收集子元素上使用它时,我已经尝试了我的公平分享。
所以是的,您可以使用.Conventions.Add(DefaultLazy.Always())
,但这应该仅适用于集合