2010-02-04 76 views
0

我正在開發一個動態數據的應用程序,其中我想請求更新期間執行插入RequestRevision(記錄的要求變化,財產以後這樣的)插入在dymanic更新 - LINQ to SQL的

public partial class ProjectDataContext 
    { 
     partial void UpdateRequest(Request instance) 
     {     
      RequestRevision rv = new RequestRevision(Requests.GetOriginalEntityState(instance));     
      this.ExecuteDynamicInsert(rv);     
      this.ExecuteDynamicUpdate(instance); 
     } 
    } 

此代碼錯誤「操作無法爲實體執行,因爲它未被更改跟蹤。」

,當我添加了更改跟蹤

public partial class ProjectStatusDataContext 
    { 
     partial void UpdateRequest(Request instance) 
     { 
      bool tracking = ObjectTrackingEnabled; 
      ObjectTrackingEnabled = true; 
      RequestRevision rv = new RequestRevision(Requests.GetOriginalEntityState(instance)); 
      //instance.RequestRevisions.Add(rv); --not working 
      this.ExecuteDynamicInsert(rv); 
      //this.RequestRevisions.InsertOnSubmit(rv); -- not working 
      ObjectTrackingEnabled = tracking; 
      this.ExecuteDynamicUpdate(instance); 
     } 
    } 

現在,我得到一個錯誤代碼「數據上下文選項不能被修改後,結果已經從查詢返回的。」

回答

0

我使用sql觸發器實現了這一點。在請求表上執行更新ID時觸發哪一個。