2017-10-18 14 views
0

親を介して1対多の関係からすべての子エンティティを削除するにはどうすればよいですか?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; } 
} 

簡単な方法は、以下のようなものを言うことができます、あります:私は上記のEF 4内の子要素を削除し、ためにあなたのメカニズムがあるべきと信じてい

parent.children.Remove(); 

答えて

0

を:

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

私はこれまでにかもしれません自分でDELETEを書くことが速いが、あなたに最適なものを決定する必要があります。 Entity FrameworkソリューションにSQL DELETEを導入すると、テストにも複雑さが増します。DELETEは、EFがすべてを処理するときに避けようとしていたものに依存するためです。あなたが最適なトレードオフを最適化して決定する前に、常に測定してください。

+0

削除するにはどうすればよいですか? 'DbSetには削除の定義が含まれていません 'というエラーが表示されます – adam78

+0

@ adam78 - 彼らはそのメソッドを非難しました。誰が知っていましたか? (まだObjectContext上にありますが)例が更新されました。 – Fenton

関連する問題