프로젝트에서 작업 중이고 삭제할 캐스케이드 삭제를 시도하고 있습니다. 주석에 사용하는 모델은 아래에 있습니다. 이 주석에는 주석 클래스를 호출하는 응답이있을 수 있습니다. 내가하려는 일은 코멘트에서 벗어날 수있는 모든 답글을 삭제하도록하는 것입니다.엔티티 내의 케스케이드 삭제 엔티티
댓글 -> 답글 -> 답글 -> 답글 -> 계속.
내가 잘못된 방향으로 가고있는 경우 알려 주시기 바랍니다. 나는 이것에 대해 연구하려고 노력했지만, 나는 일대일과 일대 다 캐스케이드 코드를 제안했다. 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'역할의 참조 제약 조건과 충돌합니다. 종속 역할의 모든 속성은 nullable이 아니므로 Principal 역할의 다양성은 '1'이어야합니다. 오류 –
나는 그것을 (또는 + 필요) 승/O를 그것을해야 얻을 수있는 '반전'제거 할 수있을 것 같아요.그러나 당신이 그것을 재구성하지 않는다면 (나는 그 오류까지 작동하는 코드에서 편집 할 수 있습니다) 여전히 '쓸데없는'시도입니다. – NSGaga
여전히 같은 오류가 발생합니다. 나는 그것이 nullable 엔티티 인 응답으로 인한 것 같아요. 옵션 필드가 있기 때문에 해당 부분에서 실패 할 수 있습니다. 나는 잘 모르겠다. –