Entity Framework - Approche basée sur la base de données

Dans ce chapitre, apprenons à créer un modèle de données d'entité avec l'approche Database First.

  • L'approche Database First fournit une alternative aux approches Code First et Model First du modèle de données d'entité. Il crée des codes de modèle (classes, propriétés, DbContext etc.) à partir de la base de données du projet et ces classes deviennent le lien entre la base de données et le contrôleur.

  • L'approche Database First crée le cadre d'entité à partir d'une base de données existante. Nous utilisons toutes les autres fonctionnalités, telles que la synchronisation modèle / base de données et la génération de code, de la même manière que nous les avons utilisées dans l'approche Model First.

Prenons un exemple simple. Nous avons déjà une base de données qui contient 3 tables comme le montre l'image suivante.

Step 1 - Créons un nouveau projet de console avec le nom DatabaseFirstDemo.

Step 2 - Pour créer le modèle, faites d'abord un clic droit sur votre projet de console dans l'explorateur de solutions et sélectionnez Ajouter → Nouveaux éléments…

Step 3 - Sélectionnez ADO.NET Entity Data Model dans le volet central et entrez le nom DatabaseFirstModel dans le champ Nom.

Step 4 - Cliquez sur le bouton Ajouter qui lancera la boîte de dialogue Assistant de modèle de données d'entité.

Step 5 - Sélectionnez EF Designer dans la base de données et cliquez sur le bouton Suivant.

Step 6 - Sélectionnez la base de données existante et cliquez sur Suivant.

Step 7 - Choisissez Entity Framework 6.x et cliquez sur Suivant.

Step 8 - Sélectionnez toutes les vues de tables et la procédure stockée que vous souhaitez inclure et cliquez sur Terminer.

Vous verrez que le modèle d'entité et les classes POCO sont générés à partir de la base de données.

Récupérons maintenant tous les étudiants de la base de données en écrivant le code suivant dans le fichier program.cs.

using System;
using System.Linq;

namespace DatabaseFirstDemo {

   class Program {

      static void Main(string[] args) {

         using (var db = new UniContextEntities()) {

            var query = from b in db.Students
               orderby b.FirstMidName select b;

            Console.WriteLine("All All student in the database:");

            foreach (var item in query) {
               Console.WriteLine(item.FirstMidName +" "+ item.LastName);
            }

            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
         }
      }
   }
}

Lorsque le programme ci-dessus est exécuté, vous recevrez la sortie suivante -

All student in the database:
Ali Khan
Arturo   finand
Bill Gates
Carson Alexander
Gytis Barzdukas
Laura Norman
Meredith Alonso
Nino Olivetto
Peggy Justice
Yan Li
Press any key to exit...

Lorsque le programme ci-dessus est exécuté, vous verrez tous les noms des étudiants qui ont été précédemment saisis dans la base de données.

Nous vous recommandons d'exécuter l'exemple ci-dessus étape par étape pour une meilleure compréhension.