我有一个Comment实体,其中新注释没有父级,但是回复列表,也是对必需父级的注释 .
用户可以创建评论,然后其他用户可以回复该评论,该评论将是所有这些回复的父级,并且回复还可以针对每个回复进行具有父评论的进一步回复 .
如何级联删除每个评论的回复,以便在删除评论或回复该评论时自动删除所有回复及其进一步回复 .
Here is the Comment Model:
public class Comment
{
public Comment()
{
Replies = new List<Comment>();
}
[Required]
public int CommentId { get; set; }
public ApplicationUser User { get; set; }
[Required]
public DateTime Datetime { get; set; }
[Required]
public string Audio { get; set; }
public Post Post { get; set; }
[JsonIgnore]
public List<Comment> Replies { get; set; }
public Comment Parent { get; set; }
}
Here is What I tried with Fluent API
modelBuilder.Entity<Comment>().
HasMany(s => s.Replies).
WithRequired(s => s.Parent).
WillCascadeOnDelete(true);
It throws following errors
在表'Comments'上引入FOREIGN KEY约束'FK_dbo.Comments_dbo.Comments_Parent_CommentId'可能会导致循环或多个级联路径 . 指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束 . 无法创建约束或索引 . 查看以前的错误 .
1 回答
您必须更改为SQL表
最后一个大胆的部分是关键 .