using (var db = Database.Context)
{
var root = (from post in db.Post
where post.Id == rootPostId
select post).Single();
root.LastActivityUtc = DateTime.UtcNow;
db.SubmitChanges();
}
同じレコードが同時に同じrootPostIdで(このコードは住んでいる)同じメソッドへの別の呼び出しによって変更されている場合はどうなりますか?例外がスローされますか?
このようなイベントでは、並行性の競合が発生しました。変更を単純に破棄して、LastActivityUtcへの更新が1つだけ送信されるようにしたいと思います。両方ともではなく、おそらく同じ値になります。
SQLにLINQを使用しての全体のポイントは、少なくとも私にとっては、ストアドプロシージャを作成することを避けるためであります。私はVSのArchitect Editionを使用していないので、SQL Management Studioを開かないでください。先に、私を怠惰に呼んでください。 :) – core
あなたは怠け者です。 私はストアドプロシージャの大ファンでもありませんが、彼らはその場所を持っています。このようなクイックチェンジは、まさに彼らにとって良いものです。ジョブには適切なツールを使用します。 LINQ to SQLは非常に大きなハンマーです。すべてが爪ではありません。 – Randolpho