这是我的ActionMethod,它不将数据填充到数据库中。

private StudentDBContext db = new StudentDBContext();

public ActionResult PopulateData()
        {
            Student objStu = new Student();

            for(int i=0;i<2;i++)
            {
                objStu.ID = i+1;
                objStu.name = "something";
                db.Students.Add(objStu);
                db.SaveChanges();
            }


            return View();
        }


只有这样做的时候才是我没有循环使用它(如下所示),为什么会这样呢?

public ActionResult PopulateData()
        {
            Student objStu = new Student();

            //for(int i=0;i<2;i++)
            //{
                objStu.ID = 1;
                objStu.name = "something";
                db.Students.Add(objStu);
                db.SaveChanges();
            //}


            return View();
        }

最佳答案

您要一遍又一遍地添加同一名学生。而是在循环内创建一个新学生(objStu):

public ActionResult PopulateData()
{
    for(int i=0;i<2;i++)
    {
        Student objStu = new Student();
        objStu.ID = i+1;
        objStu.name = "something";
        db.Students.Add(objStu);
    }

    db.SaveChanges();

    return View();
}

关于c# - dbContext对象无法从循环内工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24638233/

10-17 02:32