ASP.NET Core 2.1 импортирует большой CSV-файл в Azure SQL и обеспечивает обратную связь с обратным вызовом - PullRequest
1 голос
/ 16 мая 2019

Итак, мне нужно импортировать файл CSV (размером до 500 МБ) в базу данных ASP.NET Core 2.1 в MS SQL.

Для импорта я использую Sql Bulk insert, все нормально, но некоторыезагрузки займет около 20 минут.Даже если эти запросы с импортом будут редкими.Но я все еще думаю, как сделать его лучше с помощью CallBack, поэтому, когда я начинаю импорт, я возвращаю ответ, и в фоновом потоке будет активная задача, которая будет готова получить информацию об успешном завершении импорта.

Что вы думаетестоит ли или может быть есть лучшее решение?

    public async Task AddBulk<T>(IDataReader data) where T : class, new()
    {
        if (Connection.State == ConnectionState.Broken || Connection.State == ConnectionState.Closed)
        {
            await Connection.OpenAsync();
        }

        using (SqlBulkCopy bulk = new SqlBulkCopy(Connection))
        {
            bulk.DestinationTableName = "Test_Data_Table";
            bulk.BatchSize = 5000;
            bulk.EnableStreaming = true;


            bulk.WriteToServer(data);
            data.Close();
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...