各コメントが他のコメントの回答になる可能性があるというコメント用のこのモデルがあります。
public class Comment
{
public virtual int Id { get; set; }
public virtual string Body { get; set; }
public virtual DateTime? AddedDate { get; set; }
public virtual bool IsApproved { get; set; }
public virtual int LikeCount { get; set; }
public virtual User User { get; set; }
public virtual AnonymousUser AnonymousUser { get; set; }
public virtual Post Post { get; set; }
public virtual Page Page { get; set; }
public virtual int? ParentId { get; set; }
public virtual Comment Parent { get; set; }
public ICollection<Comment> Children { get; set; }
public virtual byte[] RowVersion { get; set; }
}
「IsApproved==true」というコメントを取得するためにこのコードを試します
this._comments
.Where(comment => comment.Post.Id == postId).Include(comment => comment.User)
.Include(comment => comment.AnonymousUser)
.Include(comment => comment.Children).Where(comment => comment.IsApproved == true)
.OrderBy(comment => comment.AddedDate)
.Skip(page * count)
.Take(count).ToList()
.Where(comment => comment.Parent == null).ToList();
しかし、このクエリは「IsApproved==true」というルートコメントだけを返します。
子供を含むすべてのコメントをフィルタリングするにはどうすればよいですか。
ありがとう