У меня есть большая коллекция из 12000 записей данных, например, и вы хотите вставить их через EF6 в базу данных sqlite. Самое время потребляет инстанцирование моделей данных:Ускорение создания экземпляра модели для EF6/sqlite db
в момент I цикла 'нового myItem() 12000 раз
downloaded12000Items.foreach(result =>{
var myItem= new myItem
{
Id = result.Id,
Description = result.Description,
Property1 = result.Property1
}
resultList.add(myItem);
});
unitOfWork.ItemRepository.InsertRange(resultList);
Как я могу ускорить создание экземпляра модели или есть возможно, еще один способ быстрее вставить данные в базу данных sqlite?
EDIT: Я должен объяснить свою проблему лучше. Узким местом является NOT insert() в базе данных. Чтобы использовать EF6 .insert (someModel), вам нужно создать экземпляр класса модели вашего объекта. Я должен сделать это 12000 раз, создание всех классов класса 12000 занимает слишком много времени.
Вопрос был в том, есть ли возможность закрепить процесс становления классов моделей, возможно, путем клонирования или чего-то еще?
Возможно, есть возможность вставить данные в базу данных sqlite без использования .insert (someModel), может быть, используя прямую команду sql или что-то еще? Очевидно, что было бы полезно ускользнуть от экземпляра модели ...
РЕДАКТИРОВАТЬ: это не вставка, которая идет медленно. это простая петлевая установка объектов модели. Сама вставка довольно быстро. – tronc
Ваш последний комментарий противоречит вашему последнему заявлению в вашем вопросе – MickyD
Я думаю, что это узкое место: 'unitOfWork.ItemRepository.Insert (myItem);' - поскольку контекст должен отслеживать все эти 12k элементов. Сначала это не занимает много времени, но после 100 или 1000 записей. – Maarten