как вставить одну и ту же запись несколько раз с помощью entity Framework

#asp.net-mvc #entity-framework

#asp.net-mvc #entity-framework

Вопрос:

Как вставить одну и ту же запись несколько раз, не используя цикл for, потому что это занимает много времени, я хочу вставлять 10 записей одновременно

               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 record.is можно ли вставить одно и то же имя с разными идентификаторами student_id несколько раз без использования цикла for?

Комментарии:

1. Student_id отличается в зависимости от вашего кода, тогда, как вы говорите, вы вставляете одну и ту же запись??

2. да, ты прав, но мне нужно одно и то же имя с другим student_id возможно ли это без использования цикла for?

3. тогда, по моему мнению, цикл — это только вариант .., вы можете улучшить свой код, используя SaveChanges() вне области цикла и объявляя List<Student> перед циклом. используя этот подход, вы можете повысить производительность своего кода.

Ответ №1:

Вы пробовали вызывать SaveChanges() после цикла? Также я рекомендую сделать идентификатор учащегося автоматически сгенерированным ключом и добавлять каждого учащегося с помощью add непосредственно в набор вместо addrange со списком.

Ответ №2:

Вам нужно вывести код БД из цикла:

 //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