2010-09-08 87 views
0

我嘗試在數據庫中更新我的對象任務,但在參數中我有對象具有清除歷史記錄(我沒有從數據庫中獲取它)。我的問題是:只更新對象的幾個字段

是否更新對象的最佳方式:

public static void SaveEditedTask(Task task) 
     { 
      using (var context=new Entities()) 
      { 
       var taskToModification = context.Tasks.Where(t => t.IDTask == task.IDTask).First(); 
       taskToModification.IDProject = task.IDProject; 

       context.SaveChanges(); 
      } 
     } 

我使用EF4

回答

1

您的代碼需要額外的數據庫查詢。您還可以使用

public static void SaveEditedTask(Task task) 
    { 
    using (var context=new Entities()) 
    { 
     context.Tasks.Attach(task); 
     context.ObjectStateManager.GetObjectStateEntry(task).SetModifiedProperty(t => t.IDProject); 

     context.SaveChanges(); 
    } 
    }