我尝试在数据库中更新我的objectt任务,但是在参数I中我有一个具有干净历史的对象(我没有从数据库中获取它)。我的问题是:
这是更新对象的最佳方式:
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
答案 0 :(得分:1)
您的代码需要对DB进行额外查询。您也可以使用
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();
}
}