我如何保存舊數據的操作[post]編輯?「編輯」操作,保存舊數據
我有這兩種模式:
public class Task
{
public int ID { get; set; }
public int sheet_length { get; set; }
public int sheets_num { get; set; }
[Required]
public int spoolID { get; set; }
[ForeignKey("spoolID")]
public virtual Spool Spool { get; set; }
}
public class Spool
{
public int ID { get; set; }
public string name { get; set; }
public int weight { get; set; }
public int weight_meter { get; set; }
public virtual ICollection<Task> Tasks { get; set; }
}
當我創建任務 - Spool.Weight改變 Task.Spool.Weight = Task.Spool.Weight - (Task.sheet_length * Task.sheets_num *任務。 Spool.weight_meter)
當我編輯的任務 - 我想這樣做:
TaskOld.Spool.Weight = TaskOld.Spool.Weight + (TaskOld.sheet_length * TaskOld.sheets_num * TaskOld.Spool.weight_meter)
Task.Spool.Weight = Task.Spool.Weight - (Task.sheet_length * Task.sheets_num * Task.Spool.weight_meter)
但是,當我試圖讓在編輯操作的舊數據
[HttpPost]
public ActionResult Edit(Task task)
{
if (ModelState.IsValid)
{
taskOld = dbContext.Tasks.Single (t => t.ID == task.ID);
////some code
db.Tasks.Attach(task);
db.SaveChanges();
return RedirectToAction("Index", "Task", new { id = task.orderID });
}
///some code }
我得到一個錯誤ObjectStateManager(它使用相同的密鑰對象)
我不知道這樣的工作,但不能你只是在'task'更新'taskOld'與改變的值,然後'SaveChanges'? – 2012-03-14 14:11:32
回頭看,有一件事你根本就不清楚 - 你是否試圖在編輯過程中保留舊任務並插入新任務?現在你的問題聽起來像是我重讀了它。 – Leniency 2012-03-14 14:49:38