У меня есть отношение E-Code First One-ко-многим. По сути, это отношения между родителем и ребенком, поскольку ребенок не может существовать без родителя.
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; }
}
Так что я не был уверен, как заставить ребенка иметь родителя, поэтому я попытался добавить в него атрибут [Обязательный]. Это дало мне ошибку:
- 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. Если у меня есть ребенок, требующий родителя, должен ли я сделать внешний ключ частью первичного ключа?