2017-03-16 143 views
0

我正在处理一个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被删除,以及

+0

你可以分享你删除的代码吗? – MaKCbIMKo

回答

0

您没有任何其他代码发布,但我仍然会猜测。很可能,您正在同时加载孩子和父母。因此,孩子有一个参考父母。您可能需要检查这两者之间的FluentAPI(外键)关系,如果您将它设置在其他地方,则可能会设置该子项为父项。

你可以做的另一件事就是在删除孩子之前,只需将孩子上的Class1属性设置为null即可。这应该会导致它不会自动将其包含在删除中。