using (DataAnalysisContext context = new DataAnalysisContext())
{
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 1000; j++)
{
context.VisitLogs.Add(new VisitLog());
}
context.SaveChanges();
Console.WriteLine(i);
}
}为找出问题的原因,对代码稍做修改,记录下各个操作所用的时间:
DateTime date1, date2, date3;
using (DataAnalysisContext context = new DataAnalysisContext())
{
for (int i = 0; i < 10; i++)
{
date1 = DateTime.Now;
for (int j = 0; j < 1000; j++)
{
context.VisitLogs.Add(new VisitLog());
}
date2 = DateTime.Now;
context.SaveChanges();
date3 = DateTime.Now;
System.Console.WriteLine("Add:{0},Save:{1}", (int)(date2 - date1).TotalMilliseconds, (int)(date3 - date2).TotalMilliseconds);
}
}输出文本:
Add:907,Save:8909
Add:5640,Save:8702
Add:10734,Save:8752
Add:15841,Save:8695
Add:20978,Save:8754
Add:26066,Save:9053
Add:31178,Save:8597
Add:36250,Save:8639
Add:41369,Save:8728
Add:46564,Save:8698
不明白为什么每千次Add的时间越来越长,换作List<VisitLog>.Add,每千次瞬间就能完成。
Entity Framework批量导入数据越来越慢解决方法
经dudu提示,对代码进行如下修改后运行正常:
for (int i = 0; i < 10; i++)
{
using (DataAnalysisContext context = new DataAnalysisContext())
{
for (int j = 0; j < 1000; j++)
{
context.VisitLogs.Add(new VisitLog());
}
context.SaveChanges();
}
}
评论(0)
暂无评论。