实体框架在删除时留下孤立对象

时间:2017-03-27 22:02:26

标签: c# entity-framework

我正在使用Entity Framework从表中删除一个对象。

public class Application {
    public int ApplicationId { get; set; }
    public FundingInfo FundingInfo { get; set; }
    ....
}

public class FundingInfo {
    public long FundingInfoId { get; set; }
    ....
}

当我删除应用程序时,它会使FundingInfo条目成为孤立的。创建迁移时,在应用程序上创建的PK(FundingInfoId)设置为onDelete: ReferentialAction.Restrict我将其更改为onDelete: ReferentialAction.Cascade,并且仍将此条目留在资金信息中。

如何让Entity在删除时为1对1对象进行级联?我确实希望Application中的FundingInfo对象能够为null ...但如果在删除对象时它不为null,那么它也应该删除FundingInfo对象吗?

显然我可以手动删除它,但这是许多1到1个孤立对象中的一个,我希望能够避免使用一堆循环来遍历对象。

1 个答案:

答案 0 :(得分:0)

使其成为必需且将启用级联删除。

public class Application {
    public int ApplicationId { get; set; }
    [Required]
    public FundingInfo FundingInfo { get; set; }
    ....
}

public class FundingInfo {
    public long FundingInfoId { get; set; }
    ....
}