代码之家  ›  专栏  ›  技术社区  ›  Alexander

遍历列表并更新数据在数据库中找不到该项

  •  0
  • Alexander  · 技术社区  · 7 年前

    当调用http方法时,我将遍历列表组件,并在数据库中查找具有正确Id的项,并更新等级值。我的问题是我不能从数据库返回正确的项,它总是返回null。我已经通过调试进行了检查,我要查找的Id为的列表中的项具有正确的值,但是我无法从db返回该项。 我也尝试过sql原始查询,但它也给了我同样的错误。 这是我的代码-var检查总是空的:

    public ActionResult UpdateExams(ExamsList examList)
            {
                var examVM = new ExamViewModel
                {
                    Professor = _context.Professor.ToList()
                };
    
                examVM.ExamsList = examList;
    
                if (!ModelState.IsValid)
                {
                    var GradesList = new List<int>();
                    for (int i = 5; i <= 10; i++)
                    {
                        GradesList.Add(i);
                    }
    
                    var GradesListSL = new SelectList(GradesList);
    
                    return PartialView("ExamsTable", examList);
    
                }
    
                try
                {
                    for (int i = 0; i < examList.ExamDetails.Count; i++)
                    {
                          var exam = _context.Exam.Single(e => e.Id == examList.ExamDetails[i].Id);
    //                    var exam = _context.Database.SqlQuery<Exam>(@"SELECT Id as Id,Grade as Grade
    //FROM Exam  
    //WHERE Id={0})
    //", examList.ExamDetails[i].Id).ToList();
    
                            exam.Grade = examList.ExamDetails[i].Grade == 0 ? exam.Grade : examList.ExamDetails[i].Grade;
    
    
                    }
                    //  _context.SaveChanges();
    
                    TempData["InsertingExam"] = "Success!";
                    // return RedirectToAction("Create", "Exams");
                    return Json(new { redirectTo = Url.Action("Edit", "Exams") });
                }
                catch (System.Data.Entity.Infrastructure.DbUpdateException ex) //DbContext
                {
    
                    string exception = ex.StackTrace + ex.Message;
                    ModelState.AddModelError("Error", exception);
                    return View(examVM);
                    throw;
                }
    
                catch (Exception ex)
                {
    
                    string exception = ex.StackTrace + ex.Message;
                    ModelState.AddModelError("Error", exception);
                    return View(examVM);
                    throw;
                }
                finally
                {
                    _context.SaveChanges();
                }
    
            }
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Alexander    7 年前

    在我添加了从视图模型创建模型类之后,一切都很好。