如何使用实体框架多次插入同一条记录

时间:2019-04-18 07:20:19

标签: asp.net-mvc entity-framework

如何在不使用for循环的情况下多次插入同一条记录,因为它要花很多时间,我想一次插入10lack记录

              for (int i = 0; i < 1000; i++)
            {
                List<student> students = new List<student>
                 {
                   new Student{student_id = i,Name= "new"}
                 };
                db.Set<Student>().AddRange(students);
                db.SaveChanges();
            }

上面的代码需要花费大量时间来插入10lack记录。是否可以在不使用for循环的情况下多次插入具有不同student_id的相同名称?

2 个答案:

答案 0 :(得分:1)

您是否尝试在循环后调用SaveChanges()? 另外,我建议将学生ID设置为自动生成的密钥,并直接向每个学生添加带有添加项的学生,而不是直接向列表添加添加范围的人。

答案 1 :(得分:0)

您需要将数据库代码移出循环:

//Declare the list object here
List<Student> students = new List<Student>();

for (int i = 0; i < 1000; i++)
{
    students.Add(new Student{student_id = i,Name= "new"});
}

db.Set<Student>().AddRange(students);
db.SaveChanges(); //Save changes to DB