Como executar uma consulta de atualização / exclusão em massa no Linq?

Eu tenho 2 classes Linq2Sql:Parent eChild. Eu quero fazer coisas como remover todos os filhos de um pai ou atualizar todos os registros filhos. Em SQL eu teria escrito:

delete Child where ParentID = @p

ou

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

Eu posso fazer isso em Linq o caminho da força bruta dentro doParent classe:

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

e

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

Mas, dada a penalidade de desempenho inerente de Linq nos loops ForEach, isso parece ser uma maneira muito ineficiente de fazer as coisas. Existe alguma maneira de alcançar o final desejado que irá disparar exatamente uma consulta?

questionAnswers(5)

yourAnswerToTheQuestion