2012-09-14 49 views
0

我尝试使用相同的数据两次更新,但它抛出异常LinqToSQL无法更新两次

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(); 
      } 
     } 
    } 

的例外是

An attempt has been made to Attach or Add an entity that is not new, perhaps having been loaded from another DataContext. This is not supported. 

首先更新是成功的,但不是在第二位。在此先感谢

问候,

布赖恩

回答

0

好看起来像我又找到了解决办法。我只需将DeferredLoadingEnabled设置为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(); 
      } 
     } 
    }