Post on 04-Apr-2015
Développement d’application avec base de données
Semaine 3 : Windows Form avec Entité Framework
Automne 2013
Entité Framework, MVC et Windows Form… Entité Framework, BindingSource et Windows
Form Exercices TP #2
Plan de présentation
Présentation à Monsieur Alexandre Brazeau
Entité Framework, MVC et Windows Form…
La finalité pour une application Windows Form est de lier les composants de façon à ce qu’ils interagissent avec la base de données.
Pour se faire, il existe trois façon de lier le datasource aux données : Lier directement à la base de données Lier avec un service Lier par des objets intermédiaires
Devinez lequel nous utiliserons
Entité Framework, BindingSource et Windows Form
Créer un ObjectDataSource: Aller dans Source de Données ajouter une nouvelle source de données
Entité Framework, BindingSource et Windows Form
Choisir le type objet
Entité Framework, BindingSource et Windows Form
Une fois faite, vous devriez avoirLes objets(entités) sélectionnésVous pouvez définir le comportement que Visual studio adoptera si vous faites du « Drag and Drop » d’éléments.Évidemment, vous n’êtes pas obligé de passer par le « Drag and Drop » pour lier les composants.
Entité Framework, BindingSource et Windows Form
Une fois faites, vous remarquez qu’un contactBindingSource est apparut.
Entité Framework, BindingSource et Windows Form
Mais en fait …
Entité Framework, BindingSource et Windows Form
Si on veut visualiser le contenue, il faut remplir le dataBindingSource. Ici, on ajoute tous les contact, mais il serait possible de filtrer la sélection.
Entité Framework, BindingSource et Windows Form
PROGRAMMINGEFDB1Entities _context = new PROGRAMMINGEFDB1Entities(); List<Contact> _contact; private void Form1_Load(object sender, EventArgs e) { try { _contact = _context.Contact.Include("Address").ToList(); contactBindingSource.DataSource = _contact; } catch (Exception ex) { Console.WriteLine(ex.Message); } }
Si on veut avoir accès au contact en cours, on le peut avec la commande:
Entité Framework, BindingSource et Windows Form
Contact currentContact = contactBindingSource.Current as Contact;
Si on veut naviguer dans notre sélection :
Entité Framework, BindingSource et Windows Form
private void btnSuivant_Click(object sender, EventArgs e) { contactBindingSource.MoveNext(); }
Comme les composants sont liés aux DataBindingSource, une modification entrainera la modification dans l’enregistrement du DataBindingSource.
Le DataBindingSource transférera ces modification au contexte.
Il ne restera plus qu’à demander au contexte de sauvegarder. (_context.SaveChanges();)
Par contre, avant de faire le SaveChanges, la littérature suggère que l’on arrête le mode d’édition du DataBindingSource (contactBindingSource.EndEdit();)
Entité Framework, BindingSource et Windows Form
Pour ajouter un enregistrement(+SaveChanges) :
Entité Framework, BindingSource et Windows Form
private void btnAjouter_Click(object sender, EventArgs e) { var newContact = contactBindingSource.AddNew() as Contact; newContact.AddDate = DateTime.Now; newContact.ModifiedDate = DateTime.Now; _context.Contact.Add(newContact); }
Pour supprimer(+SaveChanges):
Entité Framework, BindingSource et Windows Form
private void btnSupprimer_Click(object sender, EventArgs e) { Contact currentContact = (Contact)contactBindingSource.Current; if (currentContact != null) { _context.Contact.Remove(currentContact); contactBindingSource.Remove(currentContact); } }
Faite les exercices.
Exercice
Voir l’énoncé
Travail pratique
Questions?