EF Core. Как ускорить вставку несколько сот тысяч строк?

Проблема такая, через запрос rest api тригерю метод который вставляет несколько сот тысяч записей в БД, сам запрос API зависает примерно на минуту т.к. EF Core после await db.SaveChanges() вставляет все одним запросом, как можно ускорить вставку? Делить запросы не особо хочется. БД - Sql Server

Будет ли выгоднее использовать Dapper? Вставляя сразу List<>

public static async Task SaveList(MyClass[] list)
    {
        using (IDbConnection db = new SqlConnection("Server=192.168.0.20;Database=DB;User Id=sa;Password=12;"))
        {
            var query = "INSERT INTO MyClasses VALUES (@A, @B)";
            await db.ExecuteAsync(query, list);
        }
    }

как выяснилось dapper с таким кодом выполняет в разы дольше


Ответы (1 шт):

Автор решения: Svyatoslav Danyliv

Я посоветую использовать расширение linq2db.EntityFrameworkCore (я один из соавторов)

Все просто:

db.BulkCopy(list);

Вставится очень быстро.

→ Ссылка