DbContext对象不能在循环中工作

本文关键字:工作 循环 对象 不能 DbContext | 更新日期: 2023-09-27 18:12:04

这是我的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();
        }

DbContext对象不能在循环中工作

你在一次又一次地添加同一个学生。相反,在循环中创建新的student (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();
}