MODULE: ADO.
NET- ENTITY FRAMEWORK DATABASE FIRST
Objectif :
Se familiariser avec l'API Entity Framework de Microsoft via la méthode Database First.
TP1 : (CRUD)
1. Créer un nouveau Projet nommé AutoEcoleProject de type : Console (.Net Framwork)
2. Commencer par récupérer la Base de données de l’atelier en exécutant les deux fichiers sql
([Link], [Link]) (menu Outils>SQLServer>nouvelle requête)
3. Ajouter un nouvel élément, de type Entity Data Model. (Configurer la connexion vers votre
base de données autoEcole)
4. Importer les trois tables Elève, Véhicule et leçon ainsi que la procédure stockée
5. Appeler le Modèle AutoEcoleModel
Ajout :
Ajoutons un nouvel élève :
static void Main(string[] args)
{
AutoEcoleEntities ctx = new AutoEcoleEntities();
ELEVE e1 = new ELEVE(3, "ALAOUI", [Link], "Mohammed", "Fes", 122);
[Link](e1);
[Link]();
viewEleves(ctx);
}
static void viewEleves(AutoEcoleEntities ctx) {
List<ELEVE> lsE = [Link]<ELEVE>();
[Link]("Il y a " + [Link] + "Eleves");
[Link]("Nom | Prenom");
foreach (ELEVE ele in lsE)
[Link]([Link] + " " + [Link]);
[Link]();
}
1 Mr. OUBENAALLA
Modification :
Modifions un élève (crédit horaire):
Suppression :
Supprimer un élève :
Navigation(Expression Lambda) :
Pointer vers l’élève numéro 37 :
Utilisation de procédure stockée:
1. Ajouter la procédure stockée pEleveINSERT dans le modeleur
2. Appeler la procédure à l’aide de votre context :
Exercice: Application Windows Form (.Net Framework)
L’objectif est de reprendre le même exercice en utilisant une nouvelle application de type : Application
Windows Form(.Net Framework). Programmer la gestion des véhicules (Interface ci-dessous) :
1. Réaliser le formulaire Principal ci-dessous :
2 Mr. OUBENAALLA
w
2. Concevoir et programmer l’interface de gestion de véhicules ci-dessous.
Repository
1. Dans le dossier Interfaces créer votre Repository
public interface IGenericRepository<T> where T:class
{
IEnumerable<T> GetAll();
T GetById(object Id);
void Insert(T entity);
void Update(T entity);
void Delete(object Id);
void Save();
2. Créer ensuite dans le dossier repository la classe qui implémente cette interface générique
3 Mr. OUBENAALLA
public class GenericRepository<T> : IGenericRepository<T> where T:class
{
private DataEntities db;
private DbSet<T> table = null;
public GenericRepository()
{
[Link] = new DataEntities();
table = [Link]<T>();
}
public GenericRepository(DataEntities db)
{
[Link] = db;
table = [Link]<T>();
}
...
3. Implémenter les autres méthodes du CRUD
Gestion de la procédure stockée.
1. Nous allons maintenant utiliser une autre technique pour ajouter un nouvel élève. Regardons le
formulaire de création d'un nouvel élève :
• La date d'inscription comporte une zone de texte et un composant TimePicker
• Le forfait horaire prendra des valeurs numériques 10, 15, 20, 25, 30, 35, 40 ; ces valeurs seront
chargées dans la comboBox:
4 Mr. OUBENAALLA