我如何保存旧数据的操作[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