如何从简单对象的 List<> 中使用 SqlBulkCopy 进行大插入?
我是否实现了我的自定义 IDataReader?
最佳答案
与 FastMember ,您无需通过 DataTable
即可执行此操作(在我的测试中,性能提高了一倍以上):
using(var bcp = new SqlBulkCopy(connection))
using(var reader = ObjectReader.Create(data, "Id", "Name", "Description"))
{
bcp.DestinationTableName = "SomeTable";
bcp.WriteToServer(reader);
}
请注意,ObjectReader
也可以使用非通用源,并且没有必要提前指定成员名称(尽管您可能想使用 ColumnMappings
SqlBulkCopy
的方面(如果您未在 ObjectReader
本身中指定它们)。
关于c# - 来自列表的 SqlBulkCopy<>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3913371/