我有以下课程:
public class Discount
{
public override int Id { get; set; }
public virtual IList<Region> Regions { get; set; }
}
public class Region
{
public override int Id { get; set; }
public int DiscountId { get; set; }
public virtual Discount Discount { get; set; }
public int Region { get; set; }
}
当我删除折扣时,我希望它使用以下代码对相关区域进行级联删除:
foreach (var discount in discounts) {
context.Discounts.Remove(discount);
}
调用context.SaveChanges()
时出现以下错误:
DELETE 语句与 REFERENCE 约束“FK_dbo.Region_dbo.Discount_DiscountId”冲突。冲突发生在数据库“Portal”、表“dbo.Region”、列“DiscountId”中。
但是,如果我调试上面的for
循环,并且在它从上下文中删除折扣之后,我检查删除的折扣,它显示它有 0 个区域。然后当调用context.SaveChanges()
它时!
知道发生了什么,以及在不调试时如何让它工作?