#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