我有以下(简化的)EF模型,我正在使用RIA服务访问:
public class Employee
{
public long Id { get; set; }
public string Name { get; set; }
}
public class Department
{
public long Id { get; set; }
public string Name { get; set; }
public List<Employee> { get; set;}
}
我希望当我从DomainContext中删除部门时,也会删除引用的Employees。基本上是级联删除,由EF处理。
现在我找到了两种方法来实现这个目标:
1。在数据库级别启用级联删除:
如果可能的话,我真的,真的不喜欢这样做。
2。在运行时加载子实体(Employees)(当前已实现):
当用户想要删除部门时,Employees被加载到列表中,迭代并从上下文中删除。我忍不住觉得这很笨重,但它有效......
有关处理此问题的正确方法的任何想法?谢谢!
答案 0 :(得分:3)
您提到了EF支持的两种方式。如果你不喜欢它们,你需要存储过程 - 没有更好的方法。在EF的情况下,最常见的解决方案是级联删除。