Entity framework 实体框架仅在调试时执行级联删除
我有以下课程:Entity framework 实体框架仅在调试时执行级联删除,entity-framework,cascading-deletes,Entity Framework,Cascading Deletes,我有以下课程: 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; } publi
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; }
}
调用context.SaveChanges()时发生以下错误:
DELETE语句与引用约束“FK_dbo.Region_dbo.Discount\u DiscountId”冲突。冲突发生在数据库“Portal”、表“dbo.Region”、列“DiscountId”中
但是如果我调试上面的for
循环,在它从上下文中删除折扣之后,我检查删除的折扣,它显示它有0个区域。然后在调用context.SaveChanges()
时,它会工作
知道发生了什么事吗?不调试时我如何让它工作?好的-我刚刚意识到,在惰性加载对象时不能进行级联删除,这很有意义
foreach (var discount in discounts) {
context.Discounts.Remove(discount);
}