Загрузка навигационных свойств в NHibernate 3.2 - PullRequest
0 голосов
/ 10 марта 2012

У меня есть эти объекты:

public class Post {
    public virtual int Id { get; set; }
    public virtual ICollection<Tag> Tags { get; set; }
    public virtual ICollection<Comment> Comments { get; set; }
}

public class Tag {
    public virtual int Id { get; set; }
    public virtual ICollection<Post> Posts { get; set; }
}

public class Comment {
    public virtual int Id { get; set; }
    public virtual Post Post { get; set; }
}

Я хочу загрузить Post по связанным Tag s и связанным Comment s по LINQ. Я использую это:

var posts = session
    .Query<Post>()
    .OrderBy(t => t.Id)
    .Select(t => new {
        Post = t,
        CommentsCount = t.Comments.Count(),
        Tags = t.Tags        
    }).ToList();

Как вы думаете, этого достаточно? или у вас есть предложения, которые могут быть лучше, чем мой код? спасибо.

1 Ответ

1 голос
/ 10 марта 2012

Это сильно зависит от вашего отображения и того, что вы хотите сделать с полученным результатом.Imho нетерпеливая загрузка Tags ускорит производительность (выберите N + 1), если вы хотите получить доступ к списку тегов (при условии, что теги отображаются как ленивые).

...