LinqToSQL可以';不要更新两次
我尝试用相同的数据更新两次,但它引发异常LinqToSQL可以';不要更新两次,linq,linq-to-sql,datacontext,insert-update,Linq,Linq To Sql,Datacontext,Insert Update,我尝试用相同的数据更新两次,但它引发异常 public void UpdateOnSubmit<T>(T data) where T : class { lock (_lockObj) { using (DataModel dx = new DataModel(this._adapter.ConnectionString)) { dx.GetTable<
public void UpdateOnSubmit<T>(T data) where T : class
{
lock (_lockObj)
{
using (DataModel dx = new DataModel(this._adapter.ConnectionString))
{
dx.GetTable<T>().Attach(data);
dx.Refresh(RefreshMode.KeepCurrentValues, data);
dx.SubmitChanges();
}
}
}
第一次更新成功,但第二次不成功。提前谢谢
问候,
布莱恩好吧,看来我又找到了解决办法。我刚刚将DelferredLoadingEnabled设置为false,它就像一个符咒一样工作
public void UpdateOnSubmit<T>(T data) where T : class
{
lock (_lockObj)
{
using (DataModel dx = new DataModel(this._adapter.ConnectionString))
{
dx.DeferredLoadingEnabled = false;
dx.GetTable<T>().Attach(data);
dx.Refresh(RefreshMode.KeepCurrentValues, data);
dx.SubmitChanges();
}
}
}
public void UpdateOnSubmit(T数据),其中T:class
{
锁
{
使用(DataModel dx=新的DataModel(this.\u adapter.ConnectionString))
{
dx.DeferredLoadingEnabled=假;
dx.GetTable().Attach(数据);
刷新(RefreshMode.KeepCurrentValue,数据);
dx.SubmitChanges();
}
}
}
public void UpdateOnSubmit<T>(T data) where T : class
{
lock (_lockObj)
{
using (DataModel dx = new DataModel(this._adapter.ConnectionString))
{
dx.DeferredLoadingEnabled = false;
dx.GetTable<T>().Attach(data);
dx.Refresh(RefreshMode.KeepCurrentValues, data);
dx.SubmitChanges();
}
}
}