EF 코드 첫 번째 일대 다 관계가 있습니다. 그것은 본질적으로 부모/자식 관계입니다. 자식이 부모 없이는 존재할 수 없기 때문입니다. EF 코드에서 관계를 처음으로 작성하는 방법
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}
좋아요. 계단식 부분이 여러 개있을 수 있습니다. 잘 모르겠습니다.
부모도 다른 자식 개체를 가지고 있으며 이러한 자식 개체는 원래 자식 개체와 다 대다 관계를 공유하지만 계단식 삭제가 필요하지 않습니다.
내가 잘못하고있는 것 같아요.하지만이 일을하는 올바른 방법은 무엇입니까?
추신. 자녀에게 부모가 필요하면 외래 키를 기본 키의 일부로 만들어야합니까?
좋아요. 그런 단순한 관계로 인해 계단식 경로가 여러 개 위험 할 수 있습니다. –
@ IngóVals : 잘 모르겠습니다. 코드 스 니펫과 추가 설명을 사용하여 모델을 테스트했습니다. * "부모도 다른 자식 객체를 가지고 있으며 그 자식 객체는 원래 자식 객체"*와 다 대다 관계를 공유합니다. 하지만이 계단식 삭제 예외는 전혀 발생하지 않습니다. 아마 당신이 갖고있는 것과 똑같은 관계로 모델을 만들지 않았을 것입니다. 예외의 실제 이유를 찾으려면 전체 모델 ('OtherChild'엔티티 포함)을 표시해야한다고 생각합니다. – Slauma