只是想了解使用 linq2sql 更新实体的最佳做法是什么?
更多细节可以更好地理解这个问题。
正如我从文章中了解到的那样,我可以有两种情况:实体附加到上下文和从头开始(或从现有实体)构造的实体。我只想有一种方法来更新实体,目前以以下方式实现:
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 的第一次体验