在之前的项目中,我们使用EF4执行级联删除(删除父记录并删除子记录)。在这个项目(不同的公司),EF4没有执行级联删除。要使EF4执行级联删除,我需要做什么?
答案 0 :(得分:4)
仅使用EF4的级联删除是不够的;如果并非所有子项都加载到对象上下文中,您也应该在数据库上设置级联删除。话虽这么说,级联删除属性是在关联上设置的。转到模型浏览器,选择关联并查看属性。
答案 1 :(得分:0)
我在同一条船上。我只在EDM / EF4中删除级联而在数据库中没有(尚)。试试这个......
在关系中,将父节点的OnDelete(1多重性)设置为Cascade。然后在您的代码中加载所有子项,然后保存更改(删除)。
var parent = context.Parents.SingleOrDefault(p => p.Id == parentId);
parent.Children.Load();
if (parent != null)
{
context.Parent.DeleteObject(parent);
context.SaveChanges();
}
答案 2 :(得分:0)
您有两种级联删除实现方式: