删除子记录删除实体中的父记录
问题描述:
我正在处理一个asp.net应用程序。我使用实体框架来表示我的表格。 我有两个外键的模型。当我尝试从子模型中删除记录时,其中一个似乎给我带来麻烦,父母也被删除。 这里是我的模型:删除子记录删除实体中的父记录
public class Class1
{
public Class1()
{
this.Children= new HashSet<Child>();
}
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long Id { get; set; }
public bool variable{ get; set; }
[ForeignKey("Class0")]
public long Class0_Id { get; set; }
public virtual CLass0 CLass0{ get; set; }
public virtual ICollection<Child> Children{ get; set; }
}
public class CHild
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long Id { get; set; }
public bool variable5{ get; set; }
[ForeignKey("CLass1")]
public long Class1_Id { get; set; }
public virtual Class1 Class1{ get; set; }
[ForeignKey("AnotherClass")]
public long AnotherClass_Id { get; set; }
public virtual AnotherClass AnotherClass{ get; set; }
}
我的问题是,当我尝试删除从子类中记录,相关记录Class0被删除,以及
答
您没有任何其他代码发布,但我仍然会猜测。很可能,您正在同时加载孩子和父母。因此,孩子有一个参考父母。您可能需要检查这两者之间的FluentAPI(外键)关系,如果您将它设置在其他地方,则可能会设置该子项为父项。
你可以做的另一件事就是在删除孩子之前,只需将孩子上的Class1属性设置为null即可。这应该会导致它不会自动将其包含在删除中。
你可以分享你删除的代码吗? – MaKCbIMKo