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?