4

您好我需要一种将大量记录插入 MySQL 数据库表的方法。

我正在使用 Linq to Entities 并且使用 foreach 循环和插入每条记录的方法太慢了。

例如

foreach(var item in items){
    context.Add(item);
    context.SubmitChanges();
}

.net 连接器中是否有类似 MySql 命令的方法:LOAD DATA INFILE?

4

2 回答 2

3

实体框架(和 Linq-to-entities)不支持批量插入。批量插入必须始终通过数据库服务器的本机功能来完成。要从LOAD DATA INFILE.NET 连接器检查MySqlBulkLoader中使用。

于 2012-04-12T20:17:34.747 回答
-1

这篇文章看起来很有希望。我正在我自己的应用程序中尝试一下。另外,它不会干扰您的设计器,因为它是一个部分类。

http://www.codeproject.com/Tips/297582/Using-bulk-insert-with-your-linq-to-sql-datacontex

此外,这是 MSDN 上的一个类,它做同样的事情:

http://archive.msdn.microsoft.com/LinqEntityDataReader

我在这个 SO 帖子中重新实现了该功能:

使用 linq-to-sql 进行批量插入

于 2012-08-14T17:57:24.213 回答