2009-11-05 18 views
0

我如何自動更新我的實體對象更改值並將它們保存到數據庫。只更新實體對象上的更改值

我哈瓦像

public ActionResult Update() 
    { 

     User userToUpdate = new User(); 
     TryUpdateModel<User>(userToUpdate,ValueProvider); 
     BaseRepository.Context.AttachTo("User",userToUpdate); 
     BaseRepository.Context.SaveChanges(); 
     return Json(""); 
    } 

ValuProvider的操作:具有從客戶端作爲後數據來 的項目。

此代碼的問題是代碼更新所有的值,但我想只更新更改的值。

我怎樣才能找到我的實體對象更改後的值。

回答

0

你應該看看ObjectContext.ApplyPropertyChanges方法 它是假設做你問什麼... msdn

0

兩個選項:

  • 在視圖,你可以知道被使用Javascript改變的值,然後你可以將該信息傳遞給控制器​​。
  • 您可以簡單地比較以前的值(您填充視圖後已有的值)並在更新數據庫之前檢查每個值。

我更喜歡最後一個選項,因爲此時您還可以檢查數據驗證。

+0

謝謝您的回答,我想再問一個想 我怎樣才能找到改變值在我的實體對象上。 – Yucel

0

這對於您的數據訪問代碼來說確實是一個問題,與您的控制器無關。選擇一個爲你處理這個問題的ORM,並忘記這個問題。