Я работаю над проектом, и я пытаюсь получить каскадное удаление для ввода. У меня есть модель ниже, которую я использую для комментариев. Эти комментарии могут содержать ответы, которые вызывают класс комментариев. Я пытаюсь сделать это, чтобы удалить все ответы, которые могут вытекать из комментария.Каскад Удалить Entity внутри объекта
Комментарий -> Ответить -> Ответить -> так.
Если я собираюсь сделать это в неправильном направлении, пожалуйста, дайте мне знать. Я попытался исследовать это, но все, что я придумал, - это каскадные коды «один на один» и «один-много». Я использую CodeFirst с MVC 4 для создания моего проекта.
Edited
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();
}
Я думаю, что у меня его почти нет. Я получаю a \ tSystem.Data.Entity.Edm.EdmAssociationType:: Многократность конфликтует с реляционным ограничением в роли «Comment_Replies_Source» в отношении «Comment_Replies». Поскольку все свойства в зависимой роли не имеют значения NULL, множественность главной роли должна быть «1». error –
Я думаю, вы можете удалить «Обратный», так как он должен правильно его получить (и + Обязательно).Но это все еще «бесполезная» попытка - если вы не реорганизовали ее (я могу редактировать код, который работает до этой ошибки). – NSGaga
Я все еще получаю ту же ошибку. Я думаю, что это может быть связано с тем, что ответы являются объектами с нулевым значением. Поскольку это необязательное поле, это может быть неудачным в этой части. Я не уверен. –