我有这个卡车维护计划系统,现在这是我的更新卡车详细信息控制器,在更新这个我还必须更新卡车的当前运行,卡车当前运行将进入最后一次运行?我很难搞清楚。这是我的代码:
public ActionResult UpdateTruck(TruckDetails u, int id)
{
var updateTruck = db.trucks.FirstOrDefault(s => s.id == id);
if (updateTruck == null)
return View(u);
var lastrun = db.trucks.Select( s => s.current_run); // This is my problem, getting the current run value from the database
updateTruck.registration_no = u.reg_no;
updateTruck.make = u.make;
updateTruck.model = u.model;
updateTruck.engine_no = u.engine_no;
updateTruck.chassis_no = u.chassis_no;
updateTruck.driver_name = u.driver_name;
updateTruck.driver_no = u.driver_no;
updateTruck.is_updated = DateTime.Now;
updateTruck.current_run = u.current_run;
updateTruck.last_run = lastrun;
if (ModelState.IsValid)
{
db.SaveChanges();
return View(u);
}
return View(u);
}
提前谢谢
答案 0 :(得分:1)
从数据库中获取实体后,只需设置lastrun = updateTruck.current_run
public ActionResult UpdateTruck(TruckDetails u, int id) {
var updateTruck = db.trucks.FirstOrDefault(s => s.id == id);
if (updateTruck == null)
return View(u);
var lastrun = updateTruck.current_run;
updateTruck.registration_no = u.reg_no;
updateTruck.make = u.make;
updateTruck.model = u.model;
updateTruck.engine_no = u.engine_no;
updateTruck.chassis_no = u.chassis_no;
updateTruck.driver_name = u.driver_name;
updateTruck.driver_no = u.driver_no;
updateTruck.is_updated = DateTime.Now;
updateTruck.current_run = u.current_run;
updateTruck.last_run = lastrun;
if (ModelState.IsValid)
{
db.SaveChanges();
return View(u);
}
return View(u);
}
FWIW 我可能会稍微清理一下代码。您在操作中接受了int id
的参数,但如果出现问题,则永远不会将其传回视图,因此我假设id应该在您的TruckDetails模型上,所以您应该使用那,或者在那里添加。如果您的ModelState无效,您还想跳过所有其他代码
public ActionResult UpdateTruck(TruckDetails u)
{
if (u != null && ModelState.IsValid)
{
var updateTruck = db.trucks.FirstOrDefault(s => s.id == u.id);
if (updateTruck != null)
{
var lastrun = updateTruck.current_run;
updateTruck.registration_no = u.reg_no;
updateTruck.make = u.make;
updateTruck.model = u.model;
updateTruck.engine_no = u.engine_no;
updateTruck.chassis_no = u.chassis_no;
updateTruck.driver_name = u.driver_name;
updateTruck.driver_no = u.driver_no;
updateTruck.is_updated = DateTime.Now;
updateTruck.current_run = u.current_run;
updateTruck.last_run = lastrun;
db.SaveChanges();
}
}
return View(u);
}