Met FastMember kunt u dit doen zonder ooit via DataTable . te hoeven gaan (wat in mijn tests de prestaties meer dan verdubbelt):
using(var bcp = new SqlBulkCopy(connection))
using(var reader = ObjectReader.Create(data, "Id", "Name", "Description"))
{
bcp.DestinationTableName = "SomeTable";
bcp.WriteToServer(reader);
}
Merk op dat ObjectReader kan ook werken met niet-generieke bronnen, en het is niet nodig om de ledennamen vooraf op te geven (hoewel u waarschijnlijk de ColumnMappings wilt gebruiken aspect van SqlBulkCopy als u ze niet opgeeft in de ObjectReader zelf).