我有一個12000數據條目的大集合,例如,並希望通過EF6插入到sqlite數據庫。大部分時間消耗實例化數據模型的:加快EF6/sqlite數據庫的模型實例化
此刻我循環12000次「新myItem()」
downloaded12000Items.foreach(result =>{
var myItem= new myItem
{
Id = result.Id,
Description = result.Description,
Property1 = result.Property1
}
resultList.add(myItem);
});
unitOfWork.ItemRepository.InsertRange(resultList);
我如何可以加快模型的實例或者是有也許另一種更快地將數據插入到sqlite數據庫的方法?
編輯:我必須更好地解釋我的問題。瓶頸不是insert()到數據庫中。要使用EF6 .insert(someModel),您必須創建實體的模型類的實例。我必須這樣做12000次,所有12000個模型類的實例化需要太多時間。
我的問題是,是否有可能通過克隆或其他方式加快模型類的安裝過程?
或者,是否有機會將數據插入sqlite數據庫而不使用.insert(someModel),也許通過使用直接的sql命令或其他東西?顯然,跳過模型實例化可能會有所幫助...
編輯:它不是插入緩慢。它是Model對象的簡單循環安裝。插件本身非常快。 – tronc
您最近的評論與您在最後的陳述中存在矛盾 – MickyD
我認爲這是瓶頸:'unitOfWork.ItemRepository.Insert(myItem);' - 因爲上下文必須跟蹤所有這些12k項目。首先它不需要太多時間,但是在100或1000條記錄之後,它確實如此。 – Maarten