Entity Framework - widoki

Widok to obiekt zawierający dane uzyskane przez predefiniowane zapytanie. Widok to wirtualny obiekt lub tabela, której zestaw wyników pochodzi z zapytania. Jest bardzo podobny do prawdziwej tabeli, ponieważ zawiera kolumny i wiersze danych. Oto kilka typowych zastosowań widoków -

  • Filtruj dane z tabel bazowych
  • Filtruj dane ze względów bezpieczeństwa
  • Centralizuj dane rozproszone na kilku serwerach
  • Utwórz zestaw danych do ponownego wykorzystania

Widoków można używać w podobny sposób, jak używać tabel. Aby użyć widoku jako encji, najpierw musisz dodać widoki bazy danych do EDM. Po dodaniu widoków do modelu możesz pracować z nim w taki sam sposób, jak ze zwykłymi jednostkami, z wyjątkiem operacji tworzenia, aktualizowania i usuwania.

Przyjrzyjmy się, jak dodać widoki do modelu z bazy danych.

Step 1 - Utwórz nowy projekt aplikacji konsoli.

Step 2 - Kliknij prawym przyciskiem myszy projekt w eksploratorze rozwiązań i wybierz Dodaj → Nowy element.

Step 3 - Wybierz ADO.NET Entity Data Model ze środkowego panelu i wprowadź nazwę ViewModel w polu Name.

Step 4 - Kliknij przycisk Dodaj, co spowoduje uruchomienie okna dialogowego Entity Data Model Wizard.

Step 5 - Wybierz EF Designer z bazy danych i kliknij przycisk Dalej.

Step 6 - Wybierz istniejącą bazę danych i kliknij Dalej.

Step 7 - Wybierz Entity Framework 6.xi kliknij Dalej.

Step 8 - Wybierz tabele i widoki ze swojej bazy danych i kliknij Zakończ.

W oknie projektanta możesz zobaczyć, że widok został utworzony i możesz go używać w programie jako encji.

W eksploratorze rozwiązań widać, że klasa MyView jest również generowana z bazy danych.

Weźmy przykład, w którym wszystkie dane są pobierane z widoku. Poniżej znajduje się kod -

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();
      }
   }
}

Po wykonaniu powyższego kodu otrzymasz następujący wynik -

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

Zalecamy wykonanie powyższego przykładu krok po kroku w celu lepszego zrozumienia.