L2Sは更新がちょっとという人は、DataContext.GetCommand(query).CommandTextで取得した
WHERE句を元にUPDATE句やDELETE句を組み立てて、DataContext.ExecuteCommand()を実行する
ような拡張メソッドを用意するのが良いと思うよ。

そうすれば、更新処理はADO.NETを使ってベタでとかやらずに、トランザクションや排他に
ついてはExecuteNonQueryと同じ考え方で設計出来るから。

っで、それ以上の事をやりたくなったらストアドで。