У меня есть отношения EF Code First One-To-Many. По сути, это отношения «родитель-потомок», поскольку дочерний элемент не может существовать без родителя.
public class Parent
{
[Key]
public Guid Id { get; set; }
public virtual ICollection<Child> Children { get; set; }
public virtual ICollection<OtherChild> OtherChildren { get; set; }
}
public class Child
{
[Key]
public Guid Id { get; set; }
public virtual Parent Parent { get; set; }
}
Поэтому я не был уверен, как я могу заставить ребенка иметь Parent, поэтому я попытался добавить к нему атрибут [Required]. Это дало мне ошибку:
- InnerException {"Introducing FOREIGN KEY constraint 'Child_Parent' on table 'Child'
may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE
NO ACTION, or modify other FOREIGN KEY constraints.\r\nCould not create constraint.
See previous errors."}
System.Exception {System.Data.SqlClient.SqlException}
Хорошо, я не уверен, как он мог иметь несколько каскадных частей.
У родителя также есть другие дочерние объекты, и эти дочерние объекты имеют отношение «многие ко многим» с исходным дочерним объектом, но для этого не требуется каскадное удаление.
Я думаю, я делаю это неправильно, но как правильно это сделать.
PS. Когда у меня есть ребенок, требующий родителя, должен ли я сделать внешний ключ частью первичного ключа?