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).