Si on sait qu'on va avoir besoin d'une clé étrangère, on peut charger tout de suite l'objet référencé en utilisant la méthode .Include() lors de la requête select :
await db.Table1 .Where(x => x.Valeur > 3) .OrderBy(x => x.Valeur) .Include(x => x.Reference) .ToListAsync();
Si on sait qu'on va faire une boucle foreach sur toute une table, la méthode s'exécute beaucoup plus vite si on récupère la table complète et qu'on fait nos requêtes dessus en local plutôt que de faire une requête SQL pour chaque élément de la table.