¿Cómo ejecutar una consulta de actualización / eliminación masiva en Linq?

Tengo 2 clases de Linq2Sql:Parent yChild. Quiero hacer cosas como eliminar a todos los hijos de un padre o actualizar todos los registros de niños. En SQL habría escrito:

delete Child where ParentID = @p

o

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

Puedo hacer esto en Linq de manera bruta dentro de laParent clase:

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

y

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

Pero dada la penalización de rendimiento inherente de Linq en los bucles ForEach, esta parece una forma muy ineficiente de hacer las cosas. ¿Hay alguna manera de lograr el fin deseado que activará exactamente una consulta?

Respuestas a la pregunta(5)

Su respuesta a la pregunta