FastMemberを使用すると、DataTableを経由せずにこれを実行できます。 (私のテストでは、パフォーマンスが2倍以上になります):
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で指定しない場合