我有问题,看来我的模型在数据库更改后没有更新。我有一个列表,每个列表都有批准或拒绝的按钮。数据库更改后型号没有更新
using (Html.BeginForm("LeaveProcess", "Admin", FormMethod.Post, new { @class = "form-horizontal" }))
{
<input type="text" name="LvAppId" hidden value="@item.LvAppId">
<li><button type="submit" class="btn btn-link" name="AppVal" value=true data-confirm="are u sure?" >Approve</button></li>
<li><button type="submit" class="btn btn-link" name="AppVal" value=false >Reject</button></li>
}
当我按批准或拒绝按钮时,提交按钮的值去控制器
[HttpPost]
public ActionResult LeaveProcess(string LvAppId, bool AppVal)
{
DataChange.UpdateStatusFromAdmin(LvAppId, AppVal);
TempData["AlertMessage"] = "Your Action Has Been Processed";
return RedirectToAction("Index");
}
和更新数据库列到“批准”或“拒绝”。
public static void UpdateStatusFromAdmin(string LvAppId, bool AppVal)
{
if (AppVal == true)
{
db.Database.ExecuteSqlCommand("UPDATE LeaveApps SET Status='Approved' WHERE LvAppId={0}", LvAppId);
}
else
{
db.Database.ExecuteSqlCommand("UPDATE LeaveApps SET Status='Rejected' WHERE LvAppId={0}", LvAppId);
}
}
数据库进行更新(与SSMS检查的话),但是当我重新加载页面,价值仍然没有更新,我必须重新启动Visual Studio中,使其更新调试,我应该怎么办?谢谢
你是如何管理你的数据库上下文的生命周期?你是否在做类似于:使用(var db = new DatabaseContext()){//在此处执行数据访问}请参阅:https://msdn.microsoft.com/en-gb/data/jj729737.aspx – 2016-06-10 09:04:36
嗯,我使用它像这样: private static UserContext db = new UserContext();然后调用它: var Employee = db.Employee.SqlQuery 这是错的吗?和我的情况有什么关系? – Fimblutterr
如果您确信查询是正确的,并且您可以看到使用ssms对后端进行的更改,但这些更改未反映在您的应用中。我认为这是一个很好的迹象表明,上下文。它看起来像你没有像上一个注释那样正确处理上下文中的数据访问,并且链接会自动处理它......如果这样不能解决你的问题,我会聚焦在您的查询 – 2016-06-10 09:39:08