流畅的NHibernate不加载链接集合

时间:2014-12-26 04:20:15

标签: fluent-nhibernate lazy-loading fluent-nhibernate-mapping

我有两个简单的实体:

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

1 个答案:

答案 0 :(得分:1)

延迟加载约定主要仅在列表中使用,当我尝试在非收集子元素上使用它时,我已经尝试了我的公平分享。

所以是的,您可以使用.Conventions.Add(DefaultLazy.Always()),但这应该仅适用于集合