Entity Framework - Database First Approach

In questo capitolo, impariamo a creare un modello di dati di entità con l'approccio Database First.

  • L'approccio Database First fornisce un'alternativa agli approcci Code First e Model First al Entity Data Model. Crea codici modello (classi, proprietà, DbContext ecc.) Dal database nel progetto e quelle classi diventano il collegamento tra il database e il controller.

  • Il Database First Approach crea il framework dell'entità da un database esistente. Usiamo tutte le altre funzionalità, come la sincronizzazione del modello / database e la generazione del codice, nello stesso modo in cui le abbiamo utilizzate nell'approccio Model First.

Facciamo un semplice esempio. Abbiamo già un database che contiene 3 tabelle come mostrato nell'immagine seguente.

Step 1 - Creiamo un nuovo progetto console con il nome DatabaseFirstDemo.

Step 2 - Per creare il modello, prima fai clic con il pulsante destro del mouse sul progetto della console in Esplora soluzioni e seleziona Aggiungi → Nuovi elementi ...

Step 3 - Selezionare ADO.NET Entity Data Model dal riquadro centrale e immettere il nome DatabaseFirstModel nel campo Nome.

Step 4 - Fare clic sul pulsante Aggiungi che avvierà la finestra di dialogo Creazione guidata modello di dati entità.

Step 5 - Seleziona EF Designer dal database e fai clic sul pulsante Avanti.

Step 6 - Seleziona il database esistente e fai clic su Avanti.

Step 7 - Scegli Entity Framework 6.xe fai clic su Avanti.

Step 8 - Seleziona tutte le viste delle tabelle e la stored procedure che desideri includere e fai clic su Fine.

Vedrai che il modello di entità e le classi POCO vengono generate dal database.

Recuperiamo ora tutti gli studenti dal database scrivendo il seguente codice nel file 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();
         }
      }
   }
}

Quando il programma di cui sopra viene eseguito, riceverai il seguente output:

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...

Quando il programma di cui sopra viene eseguito, vedrai tutti i nomi degli studenti che erano stati precedentemente inseriti nel database.

Ti consigliamo di eseguire l'esempio precedente in modo graduale per una migliore comprensione.