linq2sql を使用してエンティティを更新するベスト プラクティスは何かを理解したかっただけですか?
質問をよりよく理解するために、もう少し詳しく説明します。
記事から理解したように、エンティティがコンテキストに関連付けられている場合と、最初から (または既存のエンティティから) エンティティが構築されている場合の 2 つの状況が考えられます。エンティティを更新するメソッドは 1 つだけにしたかったのですが、現時点では次のように実装されています。
public virtual void Save<T>(T value) where T : class
{
Context.GetTable<T>().Attach(value);
Context.Refresh(RefreshMode.KeepCurrentValues, value);
Context.SubmitChanges();
}
もちろん、コードを実行すると:
var orders = GenericRepository.Instance.Find<BuyerOrder>(b => b.ID == 2).FirstOrDefault();
orders.Price = 397809;
GenericRepository.Instance.Save(orders);
オブジェクトは既にコンテキストにアタッチされており、例外が発生しました:
Cannot attach an entity that already exists.
保存する前に常にオブジェクトをデタッチする必要がありますか? この問題を克服する別の方法はありますか?
質問がばかげている場合は申し訳ありません-これはlinq2sqlの私の最初の経験です