示例#1
0
    public static void ExecuteBulkCopy(ISqlConnectionProvider sqlConnectionProvider,
                                       string schemaName,
                                       string tableName,
                                       DataTable dataTable,
                                       SqlBulkCopyOptions bulkCopyOptions = SqlBulkCopyOptions.Default)
    {
        using (var sqlBulkCopy = new SqlBulkCopy(sqlConnectionProvider.GetSqlConnectionString(), bulkCopyOptions))
        {
            schemaName = schemaName.BracketizeSafe();
            tableName  = tableName.BracketizeSafe();

            VerifyDataTableColumnsMatchDbTableSchema(sqlConnectionProvider, schemaName, tableName, dataTable);
            SetColumnMappings(sqlBulkCopy, dataTable);
            sqlBulkCopy.BulkCopyTimeout      = 480;
            sqlBulkCopy.BatchSize            = 35000;
            sqlBulkCopy.DestinationTableName = $"{schemaName}.{tableName}";
            sqlBulkCopy.WriteToServer(dataTable);
            sqlBulkCopy.Close();
        }
    }
示例#2
0
 public IMigrationRunnerBuilder ConfigureRunner(IMigrationRunnerBuilder builder)
 {
     return(builder
            .AddSqlServer2016()
            .WithGlobalConnectionString(_sqlConnectionProvider?.GetSqlConnectionString()));
 }