LINQ to SQL データ アクセス レイヤーとして汎用リポジトリに update メソッドを作成しようとしています。
次のようなエンティティがあります。
[Table]
public class Product
{
[Column(IsPrimaryKey = true, IsDbGenerated = true,
DbType = "Int NOT NULL IDENTITY")]
public int Id { get; private set; }
[Column(UpdateCheck = UpdateCheck.Never)]
public string Name { get; set; }
....
}
Update Check = true
@jeff Atwood がこの投稿で提案しているように、id を除くすべてのフィールドを設定し、この投稿で次のようasModified
に見つけた attach メソッドのプロパティを trueに設定しました。
public void Update(T entity)
{
_db.GetTable<T>().Attach(entity, true);
_db.SubmitChanges();
}
しかし、私は同じ例外を受け取り続けます:
エンティティは、バージョン メンバーを宣言するか、更新チェック ポリシーを持たない場合にのみ、元の状態なしで変更されたものとして添付できます。
だから問題は何ですか ???
タイムスタンプ列をバージョン番号として作成する以外に、汎用リポジトリで更新メソッドを作成する他の方法をお勧めしますか?