实体框架插入优化

时间:2011-04-01 15:43:40

标签: mysql entity-framework

我需要使用Entity Framework向表中插入大量数据(表:'File',server:mysql)。

'文件'表定义:
-Id,int,primary key,auto_increment
-Name,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 个答案:

答案 0 :(得分:1)

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