更新不同表上的记录 asp.MVC

Updating records on different tables asp.MVC

在我的应用程序中,有人按下了批准按钮,控制器将收集请求的主 ID。在这里,我想将第 3 table Approval_Status 列更新为 true。我传递了主 ID 并获得了第 3 个 table 我想将记录更新到变量的 ID。

int PartyId = db.ApprovalProcess.Where(x => x.Req_Id == id).ToList().First().Id;

然后我写了这段代码来传递值。但它不会工作。我能得到帮助吗(这个问题对你来说似乎很容易,但我想告诉你我最近在自学 ASP.NET MVC。所以有些东西我还是搞不懂)

这是我的数据库结构。主要 table 名称是 AppRequest,第二个 table 是 ApprovalProcess,第三个是 Approval_Parties.

这是我当前的代码:

public ActionResult ApproveRequest(int? id)
{
     int PartyId = db.ApprovalProcess.Where(x => x.Req_Id == id).ToList().First().Id;
     
     if (ModelState.IsValid)
     {
         // model.Approved_Date = DateTime.Now;
               
         ApprovalParty approvalParty = new ApprovalParty();
         approvalParty.Approve_Status = true;

         db.SaveChanges();

         return RedirectToAction("Index");
     }
}

我想我遗漏了 table 中应该更新哪条记录的代码,该代码已经将 Id 分配给了 PartyId

像这样的东西会起作用:

public ActionResult ApproveRequest(int? id)
{
    ApprovalProcess approvalProcess = db.ApprovalProcess.FirsOrDefault(x => x.Req_Id == id);

    if (approvalProcess != null) 
    {
        ApprovalParty approvalParty = db.Approval_Parties.FirsOrDefault(x => x.ApprovalProcess_Id == approvalProcess.Id);
     
        if (approvalParty != null)
        {
            approvalParty.Approve_Status = true;
            approvalParty.Approved_Date = DateTime.Now;

            db.SaveChanges();
            
            return RedirectToAction("Index");
        }
    }
}