2011-04-01 96 views
0

我需要使用Entity Framework向表(表:'文件',服务器:mysql)插入大量数据。实体框架插入优化

'文件' 表的定义:
-Id,INT,主键,AUTO_INCREMENT
杂牌,VARCHAR(100)

现在我使用这样的代码:

TestDatabaseEntities entities = new TestDatabaseEntities() 

for (int i = 0; i < 100000; ++i) 
{ 
    File f = new File(); 
    f.Name = "test"; 

    entities.File.AddObject(f); 
} 

entities.SaveChanges(SaveOptions.AcceptAllChangesAfterSave); 

我不需要获取插入值的ID。 我如何改善插入?

回答

1

您无法改进它,因为EF不提供任何优化或命令批处理。实体框架不是处理大数据批次的好工具。如果您只需要使用存储过程来初始化100.000条记录,但是如果您需要插入100.000条不同的记录,则通过直接使用ADO.NET并在单个DbCommand中执行100多个插入,您将获得更好的结果。 EF总是会慢100倍,因为它将执行每个插入程序到数据库的单独往返。