您好我需要一种将大量记录插入 MySQL 数据库表的方法。
我正在使用 Linq to Entities 并且使用 foreach 循环和插入每条记录的方法太慢了。
例如
foreach(var item in items){
context.Add(item);
context.SubmitChanges();
}
.net 连接器中是否有类似 MySql 命令的方法:LOAD DATA INFILE?
您好我需要一种将大量记录插入 MySQL 数据库表的方法。
我正在使用 Linq to Entities 并且使用 foreach 循环和插入每条记录的方法太慢了。
例如
foreach(var item in items){
context.Add(item);
context.SubmitChanges();
}
.net 连接器中是否有类似 MySql 命令的方法:LOAD DATA INFILE?
实体框架(和 Linq-to-entities)不支持批量插入。批量插入必须始终通过数据库服务器的本机功能来完成。要从LOAD DATA INFILE
.NET 连接器检查MySqlBulkLoader
类中使用。
这篇文章看起来很有希望。我正在我自己的应用程序中尝试一下。另外,它不会干扰您的设计器,因为它是一个部分类。
http://www.codeproject.com/Tips/297582/Using-bulk-insert-with-your-linq-to-sql-datacontex
此外,这是 MSDN 上的一个类,它做同样的事情:
http://archive.msdn.microsoft.com/LinqEntityDataReader
我在这个 SO 帖子中重新实现了该功能: