1
我有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}
好吧我不知道他如何可以有多个级联部分。
父母也有其他子对象,这些子对象与原始子对象共享多对多关系,但不应该需要级联删除。
我想我做错了,但是做到这一点的正确方法是什么。
PS。当我有一个孩子需要一个家长,我应该使外键成为主键的一部分?
好吧,但像这样的简单关系会有多个级联路径的危险吗? –
@IngóVals:我不知道。我用你的代码片段和你的附加描述测试了你的模型*“父类也有其他子对象,这些子对象与原始子对象”*“共享多对多关系。但是我根本没有得到这个级联删除例外。可能我创建的模型不完全符合您拥有的相同关系。我认为你必须展示完整模型(包括'OtherChild'实体)才能找到异常的真正原因。 – Slauma