使用Entity Framework写入大量记录需要花费太多时间

Gam*_*med 1 .net c# database entity-framework

我正在开发一个项目,它只使用Entity Framework代码首先插入相对大量的记录(250K记录,只有2列).

但是将所有记录写入数据库需要花费太多时间(2~3小时)!

是因为实体框架很慢,有大量或记录或什么?

PS

代码段:

foreach (var t in myCollection)
{      
  Db.Words.Add(t);
  Db.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

Lao*_*jin 5

实体框架不适合批量操作.即使在最后执行Context.SaveChanges()(或每100条记录或某事).

using (var context = new MyContext()) 
{
    // This might speed up things a little aswell
    context.Configuration.AutoDetectChangesEnabled = false;

    // As might this (if applicable for your situation)
    context.Configuration.ValidateOnSaveEnabled = false;
}
Run Code Online (Sandbox Code Playgroud)

为了获得最佳性能,您可能希望使用与存储过程相近的数据库,或者如果必须在代码中,请直接使用ADO.NET.

SqlBulkCopy可能正是您想要的.