实体框架5:级联删除一对多

时间:2016-07-07 09:56:21

标签: mysql entity-framework-5

我想知道当我想删除我的客户时如何删除所有的bankCheck。

这是我的数据库

我做了这样的事情:

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

但我有这个错误:

  

无法删除或更新父行:外键约束失败   (``。{。BankCheck,CONSTRAINT fk_1外键(idCustomer)   参考Customerid))“

我将Cascade放在我的OnDelete End1

1 个答案:

答案 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();
}