using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace TP_Evaluation_Forms_IMBAUD_Florian
{
    /// <summary>
    /// Classe CEmploye représentant une instance de la table employees de la base de données
    /// </summary>
    [Table("employees", Schema = "public")]
    public class CEmploye
    {
        [Key]
        public uint employee_id { get; set; }

        public string first_name { get; set; }
        public string last_name { get; set; }

        public DateTime hire_date { get; set; }

        public int? department_id { get; set; }// Le "?" permet de définir un type nullable

        public decimal salary { get; set; }

        [ForeignKey("department_id")]
        public virtual CDepartement? departement { get; set; }
    }
}


using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TP_Evaluation_Forms_IMBAUD_Florian
{
    /// <summary>
    /// Classe CDepartement représentant une instance de la table departments de la base de données
    /// </summary>
    [Table("departments", Schema = "public")]
    public class CDepartement
    {
        [Key]
        public int department_id { get; set; }

        public string department_name { get; set; }

        public virtual ICollection<CEmploye>? employes { get; set; } = new List<CEmploye>();
    }
}
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TP_Evaluation_Forms_IMBAUD_Florian
{
    public class AppDbContext : DbContext
    {
        public DbSet<CEmploye> Employes { get; set; }
        public DbSet<CDepartement> Departements { get; set; }
        public DbSet<CProjet> Projets { get; set; }
        public DbSet<CEmployeProjet> EmployeProjets { get; set; }

        public static string chaineConnexion = "Host=" + "127.0.0.1" + ";" +
                                               "Port=" + "5432" + ";" +
                                               "Database=" + "postgres" + ";" +
                                               "Username=" + "postgres" + ";" +
                                               "Password=" + "admin";

        public AppDbContext() : base(OptionsConnexionPostgreSQL)
        {
            // Cette ligne configure le comportement de la conversion des dates
            // pour les versions de PostgreSQL antérieures à la 9.1
            AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
        }

        protected static DbContextOptions OptionsConnexionPostgreSQL
        {
            get
            {
                return new DbContextOptionsBuilder()
                    .UseNpgsql(chaineConnexion)
                    .Options;
            }
        }
    }
}


Dans le FormVisionnaBDD.cs : 

private void boiteListeAffichageTables_SelectedIndexChanged(object sender, EventArgs e)
{
    nombreAffichages = 10000;
    ActiverTousBoutons();

    // On affiche la table sélectionnée
    using (var contexte = new AppDbContext())
    {
        var table = boiteListeAffichageTables.SelectedItem.ToString();
        switch (table)
        {
            case "Departements":
                grilleDonneesTables.Columns.Clear();
                var departements = contexte.Departements.OrderBy(d => d.department_id).ToList();
                indexMax = departements.Count - 1;
                // Si il y a plus de 10000 données, on les affiche par page de 10000 dans grilleDonneesTable
                if (indexMax >= 10000)
                {
                    indexMinCourant = 0;

                    var departements10000 = departements.GetRange(indexMinCourant, nombreAffichages);
                    grilleDonneesTables.DataSource = departements10000;
                }
                else
                {
                    grilleDonneesTables.DataSource = departements;
                }
                break;
            case "Employes":
                grilleDonneesTables.Columns.Clear();
                var employes = contexte.Employes.OrderBy(e => e.employee_id).ToList();
                // Si il y a plus de 10000 données, on les affiche par page de 10000 dans grilleDonneesTable
                if (employes.Count >= 10000)
                {
                    indexMinCourant = 0;
                    // Ensuite, on affiche les employés de l'indice minimal courant, à l'indice maximal courant
                    var employes10000 = employes.GetRange(indexMinCourant, nombreAffichages);
                    grilleDonneesTables.DataSource = employes10000;
                }
                else
                {
                    grilleDonneesTables.DataSource = employes;
                }
                break;
            case "EmployesProjets":
                grilleDonneesTables.Columns.Clear();
                var employeProjets = contexte.EmployeProjets.OrderBy(ep => ep.employee_id).ToList();
                // Si il y a plus de 10000 données, on les affiche par page de 10000 dans grilleDonneesTable
                if (employeProjets.Count >= 10000)
                {
                    indexMinCourant = 0;
                    var employeProjets10000 = employeProjets.GetRange(indexMinCourant, nombreAffichages);
                    grilleDonneesTables.DataSource = employeProjets10000;
                }
                else
                {
                    grilleDonneesTables.DataSource = employeProjets;
                }
                break;
            case "Projets":
                grilleDonneesTables.Columns.Clear();
                var projets = contexte.Projets.OrderBy(p => p.project_id).ToList();
                indexMax = projets.Count - 1;
                // Si il y a plus de 10000 données, on les affiche par page de 10000 dans grilleDonneesTable
                if (indexMax >= 10000)
                {
                    indexMinCourant = 0;
                    var projets10000 = projets.GetRange(indexMinCourant, nombreAffichages);
                    grilleDonneesTables.DataSource = projets10000;
                }
                else
                {
                    grilleDonneesTables.DataSource = projets;
                }
                break;
            default:
                break;
        }
    }
}

Dans ce form, la ligne "var employes = contexte.Employes.OrderBy(e => e.employee_id).ToList();" ne récupère par les noms des départements par rapport aux id des départements présents dans la table employés. Comment faire ?