- Entity Framework
- Linq
- Nuget Paketverwaltung
Ziel dieser Übung ist die Grundlagen des Datenbankzugriffs per Entity Framework kennen zu lernen.
Die Typen SchoolClass
und Pupil
werden jeweils über eine Id
-Eigenschaft identifiziert.
Ein Pupil
besitzt eine Referenz auf seine School Class
. Ebenso besitzt eine SchoolClass
eine Sammlung von Pupil
-Objekten.
-
Definieren Sie das Projekt
EfDemo.Persistence
als Startup Project (Solution Explorer: rechte Maustaste auf das Projekt ->"Set As Startup Project"). -
Fügen Sie in folgenden Projekten die Datei
appsettings.json
hinzu:- EfDemo.Persistence
- EfDemo.UI
-
Konfigurieren Sie in den Properties (View -> Property Page) für die Datei
appsettings.json
folgende Einstellung:Hinweis: Dies muss für beide Vorkommen dieser Datei durchgeführt werden! Dadurch wird die Konfigurationsdatei bei der Ausführung gefunden.
-
Fügen Sie folgende Konfiguration (Verbindungseinstellungen) in die Dateien
appsettings.json
ein:{ "ConnectionStrings": { "DefaultConnection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=EFDemo;Integrated Security=True;" } }
-
Öffnen Sie den NuGet-Manager für die Solution:
-
Fügen Sie folgende NuGet-Pakete hinzu:
Paket Core Persistence Test UI Microsoft.EntityFrameworkCore - Ja Ja Ja Microsoft.EntityFrameworkCore.Tools - Ja - - Microsoft.EntityFrameworkCore.SqlServer - Ja - Ja Microsoft.EntityFrameworkCore.InMemory - - Ja - Microsoft.Extensions.Configuration.Json - Ja - Ja -
Kompilieren Sie die Solution.
-
Öffnen Sie die „Package Manager Console“:
-
Wählen Sie als "Default Project" das Projekt
EfDemo.Persistence
aus: -
Analysieren Sie die Klassen
Pupil
undSchoolClass
. -
Führen Sie der der "Package Manager Console" folgendes Kommando aus:
Add-Migration InitialMigration
-
Analysieren Sie die neue Datei
Migrations\<FortlaufendeNr>_InitialMigration.cs
. Was fällt ihnen im Vergleich zu den KlassenPupil
undSchoolClass
auf? -
Wenn Sie die Migration auf die Datenbank an ("Package Manager Console"):
Update-Database -Verbose
-
Öffnen Sie den "SQL Server Object Explorer":
-
Analysieren Sie die erstellten Tabellen – schauen Sie sich insbesondere die Struktur der Tabellen an. Betrachten Sie im Vergleich auch die (Navigations-)Properties dieser Klassen:
-
Führen Sie mit dem "Test Explorer" die hinterlegten Unit Tests aus:
-
Analysieren Sie die bestehenden Tests
-
Erstellen Sie mithilfe eigener Unit Tests weitere Datenbankoperationen.
-
Definieren Sie das Projekt
EfDemo.UI
als Startup Project (Solution Explorer: rechte Maustaste auf das Projekt ->"Set As Startup Project"). -
Führen Sie das UI-Projekt aus und analysieren Sie die Ausgaben und den Quellcode.