2017-10-18 34 views
0

如何通过父项从一对多关系中删除所有子实体 - 注意我只想删除子项。ASP MVC 5 - 从父项删除子实体

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

我相信,你的机制,删除在EF 4的子元素和上面应该是:

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

我在过去发现它可能自己写一个DELETE会更快,但你应该决定什么是最适合你的。在实体框架解决方案中引入SQL DELETE会增加测试的复杂性,因为您的DELETE将取决于您可能一直试图避免的事情,因为EF会全部处理它。在您优化并决定哪些权衡可以为您工作之前,始终进行衡量。

+0

我该如何删除它?我收到错误'DbSet不包含删除的定义' – adam78

+0

@ adam78 - 他们不赞成该方法......谁知道! (尽管它仍然在ObjectContext上),所以更新了示例。 – Fenton