呼び出すとなんらかの変更があったレコードだけがデータベース側で変更されます。簡単なアプリケーションではすべてフレームワーク任せでもいいのですが、少し実用的なアプリケーションを作ろうとすると、ユーザーに確認を求めたり、ログを残したりする必要があるので、結局、変更されたレコードを取得したり、変更内容を洗い出す必要がでてきます。いえ、変更前の値を保持しておいて、変更後の値と地道に比較していくのは、どうも昭和な匂いがします。変更されたものだけを反映する力をもっているわけですから、その情報を取得してやるのがスマートでしょう。話を簡単にするため、下記のようなごく単純なエンティティとコンテキストを想定します。(本記事において「エンティティ」とは、データベーステーブルのレコードとほぼ同義です。追加したり更新したりするには下記のようにしますね。(説明の都合上、エンティティがない場合などの処理は省いています。プロパティがあり、現在のコンテキストに対する変更を追跡しています。エンティティの型、つまりテーブルに対応する型を指定します。