Jak uruchomić zapytanie masowej aktualizacji / usunięcia w Linq?

Mam 2 klasy Linq2Sql:Parent iChild. Chcę robić rzeczy, takie jak usuwanie wszystkich dzieci dla rodzica lub aktualizowanie wszystkich rekordów podrzędnych. W SQL napisałbym:

delete Child where ParentID = @p

lub

update Child set Val = Val+1 where ParentID = @p

Mogę to zrobić w Linq brutalną siłą wewnątrzParent klasa:

Children.ToList().ForEach(c => c.DeleteOnSubmit()); // DeleteOnSubmit is my own method

i

Children.ToList().ForEach(c => c.Val++);

Ale biorąc pod uwagę nieodłączną karę Linq za pętle ForEach, wygląda to na bardzo nieefektywny sposób na robienie rzeczy. Czy jest jakiś sposób na osiągnięcie pożądanego końca, który odpali dokładnie jedno zapytanie?

questionAnswers(5)

yourAnswerToTheQuestion