Eu vejo três soluções possíveis (é apenas minha opinião):
1.
public class Comment
{
...
public List<Comment> ChildComments {get;set;}
}
Prós: você pode carregar facilmente, exibir dados hierárquicos. você não sabe o comentário pai do comentário.
Contras: você não pode consultar e atualizar o comentário com algum id.
2.
public class Comment
{
...
public string ParentCommentId {get;set;}
}
Prós: Você pode consultar/atualizar como quiser.
Contras: Grande quantidade de solicitações ao mongo quando você precisa de hierarquia de carga.
3.Meu favorito;) :
public class Comment
{
...
public string ParentCommentId {get;set;}
}
public class Article
{
...
public List<Comment> Comments {get;set;}
}
Prós: Você pode consultar/atualizar como quiser. Você pode carregar o artigo com todos os comentários em uma solicitação. Não há necessidade de armazenar ArticleType e ArticleId redundantes
Contras: Precisa carregar artigo e construir hierarquia na memória.
Espero que isso ajude você a fazer a escolha..