Entity Framework - pierwsze podejście modelu
W tym rozdziale nauczymy się, jak utworzyć model danych encji w projektancie przy użyciu przepływu pracy określanego jako Model First.
- Model First jest świetny, gdy zaczynasz nowy projekt, w którym baza danych jeszcze nie istnieje. 
- Model jest przechowywany w pliku EDMX i można go wyświetlać i edytować w Entity Framework Designer. 
- W Model First definiujesz model w projektancie Entity Framework, a następnie generujesz kod SQL, który utworzy schemat bazy danych pasujący do modelu, a następnie wykonujesz kod SQL w celu utworzenia schematu w bazie danych. 
- Klasy, z którymi współdziałasz w aplikacji, są automatycznie generowane z pliku EDMX. 
Poniżej znajduje się prosty przykład tworzenia nowego projektu konsoli przy użyciu podejścia Model First.
Step 1 - Otwórz program Visual Studio i wybierz opcję Plik → Nowy → Projekt
 
                Step 2 - Wybierz Zainstalowane → Szablony → Visual C # → Windows z lewego panelu, a następnie w środkowym panelu wybierz aplikację konsolową.
Step 3 - Wpisz EFModelFirstDemo w polu Nazwa.
Step 4 - Aby utworzyć model, najpierw kliknij prawym przyciskiem myszy projekt konsoli w eksploratorze rozwiązań i wybierz opcję Dodaj → Nowe elementy…
 
                Otworzy się następujące okno dialogowe.
 
                Step 5 - Wybierz model danych jednostki ADO.NET ze środkowego panelu i wprowadź nazwę ModelFirstDemoDB w polu Nazwa.
Step 6 - Kliknij przycisk Dodaj, co spowoduje uruchomienie okna dialogowego Entity Data Model Wizard.
 
                Step 7- Wybierz pusty model EF Designer i kliknij przycisk Dalej. Entity Framework Designer zostanie otwarty z pustym modelem. Teraz możemy zacząć dodawać encje, właściwości i skojarzenia do modelu.
Step 8- Kliknij prawym przyciskiem myszy powierzchnię projektową i wybierz Właściwości. W oknie Właściwości zmień nazwę kontenera jednostki na ModelFirstDemoDBContext.
 
                Step 9 - Kliknij prawym przyciskiem myszy powierzchnię projektową i wybierz Dodaj nowy → Jednostka…
 
                Otworzy się okno dialogowe Dodaj jednostkę, jak pokazano na poniższym obrazku.
 
                Step 10 - Wprowadź Student jako nazwę jednostki i ID Studenta jako nazwę właściwości i kliknij OK.
 
                Step 11 - Kliknij prawym przyciskiem myszy nowy element na powierzchni projektowej i wybierz opcję Dodaj nowy → Właściwość skalarna, wprowadź nazwę jako nazwę właściwości.
 
                Step 12 - Wprowadź FirstName, a następnie dodaj kolejne dwie właściwości skalarne, takie jak LastName i EnrollmentDate.
 
                Step 13 - Dodaj dwa kolejne kursy i rejestrację jednostek, wykonując wszystkie kroki wymienione powyżej, a także dodaj niektóre właściwości skalarne, jak pokazano w poniższych krokach.
 
                Step 14 - Mamy trzy encje w programie Visual Designer, dodajmy jakieś skojarzenia lub relacje między nimi.
Step 15 - Kliknij prawym przyciskiem myszy powierzchnię projektową i wybierz Dodaj nowy → Skojarzenie…
 
                Step 16 - Skieruj jeden koniec relacji na Ucznia z wieloma jednym, a drugi koniec na Zapisanie się z wieloma wieloma.
 
                Step 17 - Oznacza to, że uczeń ma wiele zapisów i zapis należy do jednego ucznia.
Step 18 - Upewnij się, że pole wyboru Dodaj właściwości klucza obcego do jednostki „Opublikuj” jest zaznaczone i kliknij przycisk OK.
Step 19 - Podobnie dodaj jeszcze jedno powiązanie między kursem a rejestracją.
 
                Step 20 - Twój model danych będzie wyglądał jak na poniższym ekranie po dodaniu powiązań między jednostkami.
 
                Mamy teraz prosty model, z którego możemy wygenerować bazę danych i używać jej do odczytu i zapisu danych. Przejdźmy dalej i wygenerujmy bazę danych.
Step 1 - Kliknij prawym przyciskiem myszy powierzchnię projektową i wybierz opcję Generuj bazę danych z modelu…
 
                Step 2 - Możesz wybrać istniejącą bazę danych lub utworzyć nowe połączenie, klikając Nowe połączenie…
 
                Step 3 - Aby utworzyć nową bazę danych, kliknij Nowe połączenie…
 
                Step 4 - Wprowadź nazwę serwera i nazwę bazy danych.
 
                Step 5 - Kliknij Dalej.
 
                Step 6- Kliknij Zakończ. Spowoduje to dodanie pliku * .edmx.sql do projektu. Skrypty DDL można uruchamiać w programie Visual Studio, otwierając plik .sql, a następnie klikając prawym przyciskiem myszy i wybierając polecenie Wykonaj.
 
                Step 7 - Zostanie wyświetlone następujące okno dialogowe umożliwiające połączenie z bazą danych.
 
                Step 8 - Po pomyślnym wykonaniu zostanie wyświetlony następujący komunikat.
 
                Step 9 - Przejdź do eksploratora serwera, zobaczysz, że baza danych jest tworzona z trzema określonymi tabelami.
 
                Następnie musimy zamienić nasz model, aby wygenerować kod korzystający z interfejsu API DbContext.
Step 1 - Kliknij prawym przyciskiem myszy puste miejsce modelu w programie EF Designer i wybierz opcję Dodaj element generowania kodu…
 
                Zobaczysz, że otworzy się następujące okno dialogowe Dodaj nowy element.
 
                Step 2 - Wybierz EF 6.x DbContext Generator w środkowym panelu i wprowadź ModelFirstDemoModel w polu Nazwa.
Step 3 - W eksploratorze rozwiązań zobaczysz, że są generowane szablony ModelFirstDemoModel.Context.tt i ModelFirstDemoModel.tt.
 
                ModelFirstDemoModel.Context generuje DbCcontext i zestawy obiektów, które można zwracać i używać do wykonywania zapytań, np. Kontekstu, studentów i kursów itp.
Drugi szablon dotyczy wszystkich typów studentów, kursów itp. Poniżej znajduje się klasa studenta, która jest generowana automatycznie z modelu jednostki.
 
                Poniżej znajduje się kod C #, w którym niektóre dane są wprowadzane i pobierane z bazy danych.
using System;
using System.Linq;
namespace EFModelFirstDemo {
   class Program {
      static void Main(string[] args) {
         using (var db = new ModelFirstDemoDBContext()) {
            // Create and save a new Student
            Console.Write("Enter a name for a new Student: ");
            var firstName = Console.ReadLine();
            var student = new Student {
               StudentID = 1,
               FirstName = firstName
            };
				
            db.Students.Add(student);
            db.SaveChanges();
				
            var query = from b in db.Students
               orderby b.FirstName select b;
            Console.WriteLine("All student in the database:");
            foreach (var item in query) {
               Console.WriteLine(item.FirstName);
            }
            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
         }
      }
   }
}Po wykonaniu powyższego kodu otrzymasz następujący wynik -
Enter a name for a new Student:
Ali Khan
All student in the database:
Ali Khan
Press any key to exit...Zalecamy wykonanie powyższego przykładu krok po kroku w celu lepszego zrozumienia.