Le même résultat peut coûter 1 requête… ou 1000. Comparez le code naïf et le code optimisé, et voyez l'impact sur le disque, le CPU et la mémoire.
IQueryable) ou en mémoire après ToList() (IEnumerable). Chaque scénario montre le code « avant », le code « après », le SQL généré et le coût estimé sur trois axes.
Les niveaux de coût sont des ordres de grandeur illustratifs (pas des mesures) : ils servent à comparer le « avant » et le « après », pas à donner un chiffre absolu.
L'erreur de performance la plus courante avec EF Core : une boucle qui déclenche une requête à chaque tour. À gauche le piège, à droite la parade.
Le piège N+1 : une requête pour la liste, puis une par élément pour ses détails → des centaines d'allers-retours. La parade : charger les données liées en une seule requête (Include / projection / Join). Mesure toujours le SQL généré.