ASP MVC 5 - 从父项中删除子实体

时间:2017-10-18 15:24:17

标签: c# asp.net asp.net-mvc entity-framework

如何通过父级删除一对多关系中的所有子实体 - 注意我只想删除子级。

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();

1 个答案:

答案 0 :(得分:0)

我相信你在EF 4及以上版本中删除子元素的机制应该是:

parent.children.ToList().ForEach(c => context.Children.Remove(c));
context.SaveChanges();

我过去发现可能更快自己写DELETE,但你应该决定什么对你最好。在实体框架解决方案中引入SQL DELETE会增加测试的复杂性,因为您的DELETE将取决于您可能一直在努力避免的事情,因为EF负责这一切。在优化之前始终进行测量,并确定哪些权衡取舍对您有用。