如何通过父级删除一对多关系中的所有子实体 - 注意我只想删除子级。
public class Parent
{
public int Id { get; set; }
public ICollection<Child> Children { get; set; }
}
public class Child
{
public int Id { get; set; }
public int ParentId { get; set; }
public string Name { get; set; }
public virtual Parent Parent { get; set; }
}
是否有简写方式,请说明如下:
parent.children.Remove();
答案 0 :(得分:0)
我相信你在EF 4及以上版本中删除子元素的机制应该是:
parent.children.ToList().ForEach(c => context.Children.Remove(c));
context.SaveChanges();
我过去发现可能更快自己写DELETE
,但你应该决定什么对你最好。在实体框架解决方案中引入SQL DELETE
会增加测试的复杂性,因为您的DELETE
将取决于您可能一直在努力避免的事情,因为EF负责这一切。在优化之前始终进行测量,并确定哪些权衡取舍对您有用。