2017-03-16 144 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即可。這應該會導致它不會自動將其包含在刪除中。