【发布时间】:2012-01-04 03:44:44
【问题描述】:
我有一个 EF Code First 一对多关系。它本质上是一种父/子关系,因为没有父母,孩子就无法存在。
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; }
}
所以我不确定如何让孩子必须有一个父母,所以我尝试在其上添加一个 [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。当我有孩子需要父母时,我应该将外键作为主键的一部分吗?
【问题讨论】:
标签: entity-framework-4.1 foreign-keys ef-code-first one-to-many