Entity Framework - Visualizzazioni

Una vista è un oggetto che contiene i dati ottenuti da una query predefinita. Una vista è un oggetto virtuale o una tabella il cui set di risultati è derivato da una query. È molto simile a una tabella reale perché contiene colonne e righe di dati. Di seguito sono riportati alcuni usi tipici delle visualizzazioni:

  • Filtra i dati delle tabelle sottostanti
  • Filtra i dati per motivi di sicurezza
  • Centralizza i dati distribuiti su più server
  • Crea un insieme di dati riutilizzabile

Le viste possono essere utilizzate in modo simile alle tabelle. Per utilizzare la vista come entità, devi prima aggiungere le viste del database a EDM. Dopo aver aggiunto le viste al tuo modello, puoi lavorarci allo stesso modo delle entità normali tranne che per le operazioni di creazione, aggiornamento ed eliminazione.

Diamo un'occhiata a come aggiungere viste nel modello dal database.

Step 1 - Crea un nuovo progetto di applicazione console.

Step 2 - Fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e selezionare Aggiungi → Nuovo elemento.

Step 3 - Selezionare ADO.NET Entity Data Model dal riquadro centrale e immettere il nome ViewModel 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 tabelle e viste dal tuo database e fai clic su Fine.

Puoi vedere nella finestra di progettazione che viene creata una vista e puoi usarla nel programma come entità.

In Esplora soluzioni è possibile vedere che anche la classe MyView viene generata dal database.

Facciamo un esempio in cui tutti i dati vengono recuperati dalla visualizzazione. Di seguito è riportato il codice:

class Program {

   static void Main(string[] args) {

      using (var db = new UniContextEntities()) {

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

         Console.WriteLine("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 codice 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...

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