2010-09-08 88 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(); 
    } 
    }