S FastMember to můžete udělat, aniž byste museli přecházet přes DataTable
(což v mých testech více než zdvojnásobuje výkon):
using(var bcp = new SqlBulkCopy(connection))
using(var reader = ObjectReader.Create(data, "Id", "Name", "Description"))
{
bcp.DestinationTableName = "SomeTable";
bcp.WriteToServer(reader);
}
Všimněte si, že ObjectReader
může také pracovat s negenerickými zdroji a není nutné předem specifikovat jména členů (ačkoli pravděpodobně budete chtít použít ColumnMappings
aspekt SqlBulkCopy
pokud je neurčíte v ObjectReader
sám).