La forma más rápida de insertar registros en masa en Entity Framework
¡Hola a todos! Soy un desarrollador C# principiante y me he encontrado con un problema de rendimiento al insertar datos en masa a través de Entity Framework. Tengo una aplicación que recibe alrededor de 10 000 registros cada minuto desde una API externa y los guarda en una base de datos SQL Server.
Actualmente uso un bucle normal con Add() y SaveChanges() para cada registro, pero esto toma alrededor de 3-4 minutos, lo cual es crítico para mi aplicación. Aquí hay un ejemplo de mi código:
public void SaveRecords(List<MyEntity> records)
{
using (var context = new MyDbContext())
{
foreach (var record in records)
{
context.MyEntities.Add(record);
context.SaveChanges(); // Llamo por cada registro
}
}
}
He oído que hay formas más eficientes: usar AddRange(), procesamiento por lotes, Bulk Insert. Pero no estoy seguro de qué enfoque dará el máximo rendimiento. También me