我一直在做一個項目,我試圖讓級聯刪除踢。我有一個模型下面我使用評論。這些評論可以有回覆,他們稱爲評論類。我想要做的就是刪除所有可以從評論中流出的回覆。級聯刪除實體內的實體
評論 - >回覆 - >回覆 - >回覆 - >等等。
如果我以錯誤的方向去解決這個問題,請告訴我。我試圖研究這一點,但我所提出的是一對一和一對多的級聯代碼。我使用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();
}
我想我差不多有它。我得到\ tSystem.Data.Entity.Edm.EdmAssociationType::多重性與'Comment_Replies'關係中'Comment_Replies_Source'角色中的參照約束髮生衝突。由於從屬角色中的所有屬性都是不可空的,所以主體角色的多重性必須爲'1'。錯誤 –
我認爲你可以刪除'反向',因爲它應該是正確的沒有它(和+必需)。但它仍然是'徒勞'的嘗試 - 除非你重新組織它(我可以編寫代碼來解決這個錯誤)。 – NSGaga
我仍然收到相同的錯誤。我認爲這可能是由於答覆是一個可空的實體。由於它是一個可選字段,因此可能在該部分失敗。我不確定。 –