Avatar ·

A maneira mais rápida de inserir registros em massa no Entity Framework

Olá a todos! Sou um desenvolvedor C# iniciante e enfrentei um problema de desempenho ao inserir dados em massa através do Entity Framework. Tenho uma aplicação que recebe cerca de 10.000 registros de uma API externa a cada minuto e os salva em um banco de dados SQL Server.

Atualmente, estou usando um loop comum com Add() e SaveChanges() para cada registro, mas isso leva cerca de 3-4 minutos, o que é crítico para minha aplicação. Aqui está um exemplo do meu código:

public void SaveRecords(List<MyEntity> records)
{
    using (var context = new MyDbContext())
    {
        foreach (var record in records)
        {
            context.MyEntities.Add(record);
            context.SaveChanges(); // Chamo para cada registro
        }
    }
}

Ouvi dizer que existem maneiras mais eficientes: usar AddRange(), processamento em lote, Bulk Insert. Mas não tenho certeza de qual abordagem proporcionará o máximo desempenho. Também mudei