http://geekswithblogs.net/michelotti/archive/2007/12/17/117791.aspx
私は C# で ASP.NET を使用しており、linq to sql を使用して、上記のリンク先のブログに示されているようにデータ コンテキストを更新しようとしています。記載されているとおりにテーブルにタイムスタンプ フィールドを作成し、次の方法を使用しています。
private void updateRecord(TableName updatedRecord)
{
context db = new context();
db.TableName.Attach(updatedRecord,true);
db.SubmitChanges();
}
私の質問は、データ コンテキストで Attach メソッドを呼び出そうとする前に、updatedRecord の何かに timeStamp フィールドを割り当てるべきですか?
このコードを実行すると、次の例外が発生System.Data.Linq.ChangeConflictException: Row not found or changed.
します。オブジェクトをこの update メソッドに渡す前に、更新しているレコードの主キーを含むすべてのフィールドを更新します。デバッグ中に、オブジェクトの TimeStamp 属性が null として表示されます。そうあるべきかどうかはわかりません。
私が持っているすべての本とリソースは、これがそれを行う方法であると述べていますが、この TimeStamp 属性について詳しく説明しているものはありません。
簡単で分かりやすいので、ご存知の方がいらっしゃいましたら教えてください。