【发布时间】:2021-04-18 03:46:26
【问题描述】:
我有一个 C# 中的 ASP.NET MVC 应用程序,它是一个博客。在此用户可以发布 cmets,并且可以在帖子和评论本身上创建 cmets。这意味着我的评论类必须是递归的,这就是我所拥有的:
public class SubComment
{
[Key]
public int subCommentId { get; set; }
public string message { get; set; }
public DateTime time_posted { get; set; }
public int parent_comment_id { get; set; }
public bool read_by_parent { get; set; }
public int parentFounder_comment_id { get; set; }
public bool parentIsSub { get; set; }
public virtual List<SubComment> SubComments { get; set; }
[ForeignKey("customer")]
public string UserId { get; set; }
public Customer customer { get; set; }
}
现在我遇到的问题是,删除评论时,还必须先删除任何嵌套的 cmets。由于每个评论都有一个 cmets 列表,因此可以继续进行下去。我无法考虑如何实施此删除的解决方案。
到目前为止,我可以找到请求删除的评论,并且可以找到对此特定评论的所有回复,但我需要的是所有嵌套的 cmets,以便回复回复等。
这是我的相关操作代码:
SubComment subComment = context.SubComments.Find(id);
replies = context.SubComments
.Where(sc => sc.parent_comment_id == subComment.subCommentId && sc.parentIsSub == true)
.OrderByDescending(sc => sc.time_posted).ToList();
任何人都可以帮助我实现这一点,任何答案表示赞赏。
(我上传了一个类似的问题,我无法删除但它已关闭,所以它不能也没有答案,很遗憾)。
【问题讨论】:
标签: c# asp.net-mvc nested-lists recursive-datastructures