Entity Framework Core

Hallo Freunde. An diesem wundervollen Maitag arbeiten wir weiter und möchten heute darüber sprechen, dass OTUS im Mai den von allen geliebten Kurs „C # Developer“ sowie einen separaten C # ASP- Kurs startet . NET Core . Traditionell beginnen wir am Vorabend des Kursbeginns, nützliches Material zu veröffentlichen. Gehen.




Einführung


Die meisten modernen ASP NET Core-Anwendungen verwenden den Entity Framework Core. Entity Framework Core ist eine Technologie für den Zugriff auf Datenbanken von Microsoft. Sie können mit dem DBMS über Entitäten, dh Klassen und NET-Objekte, anstatt über Datenbanktabellen interagieren. Dies ist das bekannteste und funktionalste ORM-Tool in C #. ORM ist eine objektrelationale Zuordnung - Zuordnung von Daten zu realen Objekten.

Wenn ein Entwickler beispielsweise direkt mit Datenbanken arbeitet, sollte ein Programmierer darüber nachdenken, eine Verbindung herzustellen, SQL- und SQL-Parameter vorzubereiten und Abfragen und Transaktionen zu senden. Und mit Hilfe des Entity Framework Core erfolgt dies alles automatisch - der Entwickler arbeitet direkt mit den NET-Klassen.

ORM-Ansätze


ORM hat mehrere Ansätze.

Der erste ist Code First. Dies bedeutet, dass zuerst C # -Code geschrieben und dann mit diesem Code eine Datenbank erstellt wird. Für diesen Ansatz ist es sehr wichtig, die Klassen des Modells oder der Entität zu definieren, die in der Datenbank gespeichert werden, sie in C # -Klassen als Modell zu beschreiben und eine Kontextklasse zu schreiben, die mit der verwendeten Datenbank funktioniert. Der Code First-Ansatz wird am häufigsten von C # -Programmierern verwendet.

Zweiter Ansatz- Database-First- ist für diejenigen geeignet, die SQL gut kennen, aber in diesem Fall ist es nicht erforderlich, C # gut zu kennen. Die Datenbank wird zuerst erstellt, dann wird das EDMX-Datenbankmodell generiert. Dieses XML in der EDMX-Datei enthält Informationen über die Struktur der Datenbank, das Datenmodell und deren Zuordnung zueinander. Visual Studio verfügt über einen Grafikdesigner, mit dem Sie mit .edmx

Model-First arbeiten können - dies ist der dritte ORM- Ansatz . Es wird häufig von Architekten verwendet, da Sie mit diesem Ansatz weder die SQL- noch die C # -Syntax kennen. In diesem Fall wird zuerst ein grafisches EDMX-Modell erstellt. Zu diesem Zeitpunkt werden C # -Modellklassen im Hintergrund erstellt, und anschließend wird eine Datenbank basierend auf dem EDMX-Diagramm generiert.

Kernmodelle des Entity Framework


Alle Datenbanktabellen werden im Entity Framework in der Regel als Klassen von Modellen oder Entitäten definiert, und zwar nach dem Prinzip von 1 Tabelle, z. B. Benutzer, - 1 Klasse in NET, z. B. Benutzer. Solche Paare werden als Konventionen bezeichnet und in der Datenkontextklasse als DbSet-Mengen definiert. Dieser Ansatz funktioniert standardmäßig.

Obwohl Mechanismen wie die Fluent-API und Datenanmerkungen vorhanden sind, können diese Konventionen oder zusätzliche Konfigurationsregeln überschrieben werden.

Migrationen


Während des Entwicklungsprozesses ist es sehr wahrscheinlich, dass sich die Entity Framework-Modellklasse geändert hat, und Sie müssen die Datenbank löschen, um die Modellkonformität aufrechtzuerhalten. Wenn Sie jedoch eine Datenbank löschen, werden auch alle Daten daraus gelöscht.

Um Daten zu speichern, wenn sich das Modell ändert, gibt es im Entity Framework Core eine Migrationsfunktion. Sie können Schemaänderungen konsistent auf die Datenbank anwenden, um sie mit dem Datenmodell zu synchronisieren.

Bei der Migration gibt es Vorgänge, mit denen Sie Spalten und Tabellen, Fremdschlüssel löschen, Spalteneinstellungen ändern, Daten hinzufügen, löschen und ändern usw. können. Wenn Sie eine Migration erstellen, wird automatisch eine Klasse erstellt, in der die Vorgänge ausgeführt werden, die erforderlich sind, um die Up () -Migration anzuwenden und an die Down () -Methode zurückzugeben.

LINQ


LINQ ist untrennbar mit dem Entity Framework in NET verbunden. LINQ ist eine sprachintegrierte Abfrage oder eine intralinguale Abfrage - dies ist eine Technologie, die eine Reihe von Funktionen in NET darstellt, mit denen Sie strukturierte Datenbankabfragen schreiben können.

Für die Arbeit mit Entity Framework Core wird die Technologie LINQ to Entities verwendet. LINQ verwendet SQL-ähnliche C # -Ausdrücke, um Daten aus einer Datenbank abzurufen. Jede relationale Datenbank arbeitet mit SQL-Abfragen, und der Entity Framework Core übersetzt LINQ in Entities-Ausdrücke in SQL-Abfragen, die für die verwendete Datenbank verständlich sind.

Fazit


Daher haben wir kurz auf die Funktionen des Entity Framework Core eingegangen. Wie Sie gesehen haben, ist es wirklich sehr leistungsfähig und so sehr, dass der Programmierer, der damit arbeitet, nicht einmal SQL kennen muss. Und Entity Framework Core nimmt zu Recht den ersten Platz unter den ORMs in der NET-Welt ein.







All Articles