我正在使用sql server database在mvc .net中创建一个数据库应用程序。我有一个表名称seatplans,其中包含字段id,layout_id,seat_no,seat_id,预订我想用控制器动作中的以下问题更新数据库< / p>
update seatplanes set booked=1 where seatid=seat_id and layoutid=layout_id
我的控制器操作如下,但我无法更新数据库
[HttpPost]
public ActionResult Seatbook(String seat_id, String seat_no, int layout_id)
{
// int id = 10;
SeatPlans S = new SeatPlans();
S.seat_id = seat_id;
S.seat_no = seat_no;
S.layout_id = layout_id;
S.booked = 1;
if (ModelState.IsValid)
{
var OldInsObj = db.SEATPLAN.Find(seat_id,layout_id);
S.Id = OldInsObj.Id;
//var OldInsObj = db.SEATPLAN.Find(d=>d.seat_id==seat_id , d=>d.layout_id==layout_id).ToList();
db.Entry(S).State = EntityState.Modified;
db.SaveChanges();
// return RedirectToAction("Index");
}
return View("Index");
}
我可以在不使用存储过程的情况下更新数据库。
答案 0 :(得分:1)
首先,我想您想阅读实体框架的documentation,它可以帮助您满足所有需求。
但是,要回答您的问题以更新数据库条目,您首先要获得条目:
var OldInsObj = db.SEATPLAN.Where(s => s.seat_id == seat_id
&& s.layout_id == layout_id).FirstOrDefault();
使用find仅在搜索主键时有效,当您想要搜索其他字段时,您需要使用Linq,如上所示。
然后更新:
OldInsObj.booked = 1;
最后,您可以将您的工作保存到数据库中:
db.SaveChanges();