Avatar ·

Le moyen le plus rapide d'insérer en masse des enregistrements dans Entity Framework

Bonjour à tous ! Je suis un développeur C# débutant et j'ai rencontré un problème de performance lors de l'insertion massive de données via Entity Framework. J'ai une application qui reçoit environ 10 000 enregistrements par minute d'une API externe et les enregistre dans une base de données SQL Server.

Actuellement, j'utilise une boucle classique avec Add() et SaveChanges() pour chaque enregistrement, mais cela prend environ 3 à 4 minutes, ce qui est critique pour mon application. Voici un exemple de mon code :

public void SaveRecords(List<MyEntity> records)
{
    using (var context = new MyDbContext())
    {
        foreach (var record in records)
        {
            context.MyEntities.Add(record);
            context.SaveChanges(); // Appelé pour chaque enregistrement
        }
    }
}

J'ai entendu dire qu'il existe des méthodes plus efficaces : utiliser AddRange(), le traitement par lots, Bulk Insert. Mais je ne suis pas sûr de l'approche qui offrira les meilleures performances. De plus, je