Vous êtes sur la page 1sur 5

Atelier Entity Framework Model First

L’objectif de cet atelier est la création de l’écran gestion des salariés avec Entity Framework
Model First.
Après que nous avons déjà effectué la conception de notre modèle dans EF Designer et la
page de gestion des départements en suivant le modèle suivant :

1. Nous allons poursuivre avec la création de la page WebForm « Gestion des salaries »
2. Le design de la page doit ressembler au design ci-dessous :

3. Ci-dessous le code qui permet de charger la liste des départements dans la premiere
DDL (DropDownList) :

protected void Page_Load(object sender, EventArgs e)


{
if (!Page.IsPostBack)
{
DDlListeDepartement.DataSource = (from dep in
DbContext.Departement
select
dep).ToList();
DDlListeDepartement.DataTextField = "Description";
DDlListeDepartement.DataValueField = "Id";
DDlListeDepartement.DataBind();
}
}
NB : Il faut activer l’évènement AutoPostBack du DDL des départements pour forcer le chargement
de la page suite au changement de valeur de la liste des départements, cela pour recharger la liste
des salariés du département en question.
4. Une fois la liste des départements chargée, et l’utilisateur change la sélection, nous
devons afficher la liste des salariés dans le GridView « Liste Salarié », le code suivant
permet de charger la liste des salarié à partir de l’évènement
« SelectedIndexChanged » de la DDL des départements.

Int32 Iddepartement =
int.Parse(DDlListeDepartement.SelectedValue.ToString());
GvSalarie.DataSource = (from sal in DbContext.Salarie
where sal.DepartementId == Iddepartement
select new { sal.Id, sal.Nom, sal.Prenom,
sal.Departement.Description }).ToList();
GvSalarie.DataBind();

5. Par la suite, il faut afficher le détail d’un salarié suite à la sélection d’une ligne dans le
GridView des salariés, c’est un code à mettre dans l’évènement
« SelectedIndexChanged » du GridView des salariés.

Int32 SalarieId =
int.Parse(GvSalarie.SelectedValue.ToString());
Salarie MonSalarie = (from salarie in
DbContext.Salarie
where salarie.Id == SalarieId
select salarie).Single();
TbNom.Text = MonSalarie.Nom;
TBPrenom.Text = MonSalarie.Prenom;
TbAdresse.Text = MonSalarie.Adresse;
TbFonction.Text = MonSalarie.Fonction;
ChargementDepartement();
DDLDepartementSal.SelectedValue =
MonSalarie.DepartementId.ToString();

6. La méthode « ChargementDepartement » permet de charger la liste des


départements dans le DDL de département d’un salarié.
private void ChargementDepartement()
{

DDLDepartementSal.DataSource = (from dep in DbContext.Departement


select dep).Distinct().ToList();
DDLDepartementSal.DataTextField = "Description";
DDLDepartementSal.DataValueField = "Id";
DDLDepartementSal.DataBind();

7. Ci-dessous le code du bouton Ajouter un salarie :

protected void BtAjout_Click(object sender, EventArgs e)


{
Salarie NewSalarie = new Salarie();
NewSalarie.Nom = TbNom.Text;
NewSalarie.Prenom = TBPrenom.Text;
NewSalarie.Adresse = TbAdresse.Text;
NewSalarie.DepartementId =
int.Parse(DDLDepartementSal.SelectedValue.ToString());
NewSalarie.Fonction = TbFonction.Text;
DbContext.Salarie.Add(NewSalarie);
DbContext.SaveChanges();
CharegementSalarie();
}

8. Ci-dessous le code du bouton MAJ d’un salarie :

protected void BtMAJ_Click(object sender, EventArgs e)


{
Int32 SalarieId =
int.Parse(GvSalarie.SelectedValue.ToString());
Salarie MonSalarie = (from salarie in DbContext.Salarie
where salarie.Id == SalarieId
select salarie).Single();
MonSalarie.Nom = TbNom.Text;
MonSalarie.Prenom = TBPrenom.Text;
MonSalarie.Adresse = TbAdresse.Text;
MonSalarie.Fonction = TbFonction.Text;
MonSalarie.DepartementId =
int.Parse(DDLDepartementSal.SelectedValue.ToString());
DbContext.SaveChanges();
CharegementSalarie();
}
9. Ci-dessous le code du bouton Suppression d’un salarie :

protected void btDelette_Click(object sender, EventArgs e)


{
Int32 SalarieId = int.Parse(GvSalarie.SelectedValue.ToString());
Salarie MonSalarie = (from salarie in DbContext.Salarie
where salarie.Id == SalarieId
select salarie).Single();
DbContext.Salarie.Remove(MonSalarie);
DbContext.SaveChanges();
CharegementSalarie();
}

Vous aimerez peut-être aussi