DbContext对象无法在循环内工作

时间:2014-07-08 17:37:32

标签: c# asp.net asp.net-mvc entity-framework asp.net-mvc-5

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

1 个答案:

答案 0 :(得分:6)

您正在反复添加同一个学生。相反,在循环中创建新学生(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();
}