我一直在做一个项目,我正在尝试启动级联删除。我在下面有一个模型用于评论。这些评论可以有来自他们调用评论类的回复。我想要做的是让它删除所有可以从评论中流出的回复。
评论 -> 回复 -> 回复 -> 回复 -> 以此类推。
如果我在错误的方向上进行此操作,请告诉我。我曾尝试对此进行研究,但我想出的只是一对一和一对多级联代码。我使用 CodeFirst 和 MVC 4 来构建我的项目。
已编辑
public class Comment
{
// Properties
public long Id { get; set; }
[Required]
[StringLength(250, ErrorMessage = "{0} must be between {1} and {2} characters", MinimumLength = 2)]
public string Body { get; set; }
[Required]
public DateTime CreateDate { get; set; }
[Required]
[InverseProperty("Comments")]
public User Author { get; set; }
[InverseProperty("CommentCount")]
public Blog Blog { get; set; }
public bool Hidden { get; set; }
public long RepliesId { get; set; }
[InverseProperty("Replies")]
public virtual Comment Comments { get; set; }
[InverseProperty("Comments")]
public virtual ICollection<Comment> Replies { get; set; }
public virtual ICollection<Vote> Votes { get; set; }
public Comment()
{
CreateDate = DateTime.UtcNow;
Hidden = false;
}
}
这是我的 DataContextInitializer
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Comment>().HasMany(i => i.Replies)
.WithOptional(i => i.Comments)
.HasForeignKey(i => i.RepliesId)
.WillCascadeOnDelete();
}