2016-07-07 111 views
0

我想知道當我想刪除我的客戶時,如何刪除我所有的銀行檢查。實體框架5:級聯刪除一對多

這是我的數據庫

我做了這樣的事情:

ConEntities context = new ConEntities(); 
context.Customer.Attach(selectedCustomer); 
context.Customer.Remove(selectedCustomer); 
context.SaveChanges(); 
context.Dispose(); 

但我有此錯誤:

Cannot delete or update a parent row: a foreign key constraint fails (``. BankCheck , CONSTRAINT fk_1 FOREIGN KEY (idCustomer) REFERENCES Customer (id))"

我把級聯我OnDelete End1

+0

是什麼讓你得出這樣的結論,以級聯刪除異常有關係嗎?事實並非如此。看看'selectedCustomer'的來源。 –

+0

在我所選的客戶中,我擁有所有的BankCheck。它來自我的數據網格。和我的例外情況相關的是當我的上下文嘗試附加我選擇的客戶。 – Naografix

+0

你應該問自己爲什麼它仍然與前面的背景有關。 –

回答

0

修正了this

using (var context = new ConEntities()) 
{ 
    var parent = context.Customer.Include(p => p.Check).SingleOrDefault(s => s.id == selectedCustomer.id); 

    if (parent.Check != null && parent.Check.Count > 0) 
    { 
     foreach (var child in parent.Check.ToList()) 
     { 
      context.Check.Remove(child); 
     } 
    } 

    context.Customer.Attach(parent); 
    context.Customer.Remove(parent); 
    context.SaveChanges(); 
}