简体   繁体   English

如何使用Linq to SQL将数据批量插入db?

[英]How to bulk insert data into db using Linq to SQL?

In the past, I always use Class SqlBulkCopy to complete bulk insert. 过去,我始终使用SqlBulkCopy类来完成批量插入。 But I don't know how to implement it using Linq to SQL. 但是我不知道如何使用Linq to SQL来实现它。 If inserted one by one, Efficiency will be very low. 如果一一插入,效率将非常低。
Any good ideas? 有什么好主意吗?
Thanks in advance and sorry for my poor English. 在此先感谢您,我的英语不好。

Simple: you don't. 很简单:您不需要。 You just use SqlBulkCopy . 您只需要使用SqlBulkCopy LINQ-to-SQL is simply a tool. LINQ-to-SQL只是一个工具。 SqlBulkCopy is a tool. SqlBulkCopy是一个工具。 Use the right tool for each job. 为每个作业使用正确的工具。 Sometimes that means using something that isn't LINQ-to-SQL. 有时,这意味着使用的不是 LINQ-to-SQL。 This might mean creating a DataTable (or a spoof IDataReader if you are feeling ambitious) to represent the data; 这可能意味着创建一个DataTable (或欺骗性的IDataReader如果您有野心的话)来表示数据。 look perhaps at Convert generic List/Enumerable to DataTable? 看看也许将泛型列表/可枚举转换为数据表? to get from your typed objects to a DataTable you can feed to SqlBulkCopy . 要从键入的对象到DataTable ,可以将其提供给SqlBulkCopy

See this article on SubmitChanges() . 请参阅有关SubmitChanges()的文章。

Your changes are not transmitted to the server until you explicitly call SubmitChanges on the DataContext. 您所做的更改不会传输到服务器,直到您在DataContext上显式调用SubmitChanges。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM