2011-06-14 62 views
0

我使用此代碼更新,我們已經通過AJAX從前端接收的對象(MySQL的):MySQL的實體更新

  foreach (ChequeDiaryPaymentDetail item in data.Updated) { 
       this.DBContext.ChequeDiaryPaymentDetails.Attach(item); 
       this.DBContext.ApplyOriginalValues("ChequeDiaryPaymentDetails", item); 
      } 

這是正確的方法?如果我做同樣的事情,不同的是用在

ApplyOriginalValues 

this.DBContext.ObjectStateManager.ChangeObjectState(item, System.Data.EntityState.Modified); 

..數據庫是否正確也更新了。後一種方法是否錯誤地強制更新?我只是想確保從一開始就沒有錯誤地做到這一點!

回答

1

如果您的對象處於未更改狀態,那麼ApplyOriginalValues方法會將對象狀態更改爲已修改(就像ChangeObjectState方法一樣)。我想這是事實。
因此,如果您的邏輯需要在執行更新之前應用原始值(例如,您正在實施樂觀併發模型),則更好的解決方案將首先應用原始值。否則,它應該足以僅改變對象狀態。

+0

謝謝。我將繼續使用ApplyOriginalValues方法。 – pierre 2011-06-15 14:56:30