Développement dapplication avec base de données Semaine 3 : Windows Form avec Entité Framework...

Preview:

Citation preview

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?

Recommended