Linq to EF 包括列表的子列表



给定以下方法,该方法返回博客文章,其父博客对象和该博客文章的评论列表;我正在尝试确定是否有办法在此方法中也返回评论列表中每条评论的评论回复列表。

以下是课程

public class Comment
{
    [Key]
    public int CommentId { get; set; }
    //[ForeignKey("BlogPost")]
    //[Index("IX_BlogPostIndex", 1, IsClustered = false, IsUnique = false)]
    public int BlogPostId { get; set; }
    public BlogPost BlogPost { get; set; }
    [Required]
    public string CommentText { get; set; }
    [Required]
    public DateTime CommentPostTime { get; set; }
    public List<Reply> CommentReplies { get; set; }

    [Required]    
    public string UserFullName { get; set; }
}
 public class Reply
{
    [Key]
    public int ReplyId { get; set; }
    [Required]
    public string ReplyText { get; set; }
    [Required]
    public UserProfile MemberProfile { get; set; }
    [ForeignKey("Comment")]
    [Index("IX_CommentIndex", 1, IsClustered = false, IsUnique = false)]
    public int CommentId { get; set; }
    public Comment Comment { get; set; }
   [Required]
    public DateTime ReplyPostTime { get; set; }

}

和方法

public BlogPost GetBlogPostById(int blogPostId)
{
    return _db.BlogPosts.Where(e => e.BlogPostId == blogPostId)
                        .Include(e => e.Comments)
                        .Include(e => e.Blog)
                        .FirstOrDefault();
}

我可以从此方法循环访问返回对象并检索回复,但确信必须有一种方法使用 LINQ 在此方法中执行此操作,以便它们是返回对象的一部分,而不是运行其他方法来执行此操作。

如果"回复"是"注释"上的导航属性,则可以在现有查询中添加如下所示的"包含":

.Include("Comments.Replies")

这与你拥有的"包含"的工作方式相同,只是更容易包含嵌套导航属性

相关内容

最新更新