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
で指定しない場合