Entity Framework Core (EF Core) ist ein objektrelationales Mapping (ORM)-Framework, das Entwicklern die Interaktion mit Datenbanken mithilfe von .NET-Objekten ermöglicht. Eines der wesentlichen Merkmale von EF Core ist seine Fähigkeit, Datenbankmigrationen durchzuführen.
Voraussetzungen
- Grundlegende Kenntnisse der Programmiersprache C#.
- Grundlegendes Verständnis der OOPS-Konzepte
In diesem Artikel werden EF Core-Migrationen anhand eines Beispiels erläutert, warum sie wichtig sind und wie sie verwendet werden. Also, um zu beginnen:
Lernziele
- Verwendung der EF Core-Migration anhand eines Beispiels.
- Warum EF Core-Migrationen wichtig sind
Erste Schritte
EF Core-Migrationen sind eine Möglichkeit, Änderungen an Ihrem Datenbankschema im Laufe der Zeit zu verwalten. Wenn Sie Änderungen an Ihrem Datenbankmodell vornehmen (z. B. das Hinzufügen oder Entfernen von Tabellen oder Spalten), können Sie eine Migration erstellen, die diese Änderungen beschreibt.
Anschließend werden Migrationen verwendet, um das Datenbankschema so zu aktualisieren, dass es dem neuen Modell entspricht.
Warum sind EF Core-Migrationen wichtig?
EF Core-Migrationen sind unerlässlich, da sie es Ihnen ermöglichen, Ihr Datenbankschema im Laufe der Zeit weiterzuentwickeln und gleichzeitig die Daten beizubehalten.
Ohne Migrationen müssten Sie Ihr Datenbankschema jedes Mal manuell ändern, wenn Sie Änderungen an Ihrem Modell vornehmen, was zeitaufwändig und fehleranfällig sein kann.
Migrationen bieten auch eine Möglichkeit, Ihr Datenbankschema zu versionieren, sodass Sie Änderungen einfach nachverfolgen und bei Bedarf auf frühere Versionen zurücksetzen können.
Wie verwende ich EF Core-Migrationen?
Um EF Core Migrations verwenden zu können, müssen Sie einige Schritte ausführen:
- Erstellen Sie ein neues EF Core-Projekt. Der erste Schritt besteht darin, ein neues EF Core-Projekt in Visual Studio zu erstellen. Sie können dies tun, indem Sie „Neues Projekt erstellen“ auswählen, dann „ASP.NET Core Web Application“ auswählen und die Vorlage „Web Application (Model-View-Controller)“ auswählen.
- Erstellen Sie einen Datenbankkontext. Der nächste Schritt besteht darin, eine Datenbankkontextklasse zu erstellen. Diese Klasse verwaltet Interaktionen zwischen Ihren .NET-Objekten und der Datenbank. Um einen Datenbankkontext zu erstellen, erstellen Sie eine neue Klasse in Ihrem Projekt und erben Sie diese von der DbContext-Klasse.
public class MyDbContext : DbContext { public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { } }
Erstellen Sie ein Datenbankmodell
Nachdem Sie einen Datenbankkontext erstellt haben, müssen Sie ein Datenbankmodell erstellen. Dieses Modell stellt die Struktur Ihrer Datenbank dar und wird von EF Core zum Generieren von Datenbanktabellen und -spalten verwendet.
Um ein Datenbankmodell zu erstellen, erstellen Sie eine neue Klasse in Ihrem Projekt und definieren Sie deren Eigenschaften als Datenbankfelder.
public class MyModel { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } }
Aktivieren Sie EF Core-Migrationen
Als Nächstes müssen Sie EF Core Migrations in Ihrem Projekt aktivieren. Öffnen Sie dazu die Package Manager-Konsole und geben Sie den folgenden Befehl ein:
PM> Install-Package Microsoft.EntityFrameworkCore.Tools
Dieses Paket enthält die Tools, die zum Erstellen und Verwalten von EF Core-Migrationen erforderlich sind.
Erstellen Sie eine Migration
Wenn EF Core Migrations aktiviert ist, können Sie Ihre erste Migration erstellen. Um eine Migration zu erstellen, öffnen Sie die Package Manager-Konsole und geben Sie den folgenden Befehl ein:
PM> Add-Migration InitialCreate
Dadurch wird eine neue Migration namens „InitialCreate“ erstellt, die die Änderungen beschreibt, die Sie an Ihrem Datenbankmodell vorgenommen haben. Sie können den Inhalt der Migration im Ordner „Migrationen“ Ihres Projekts einsehen.
Aktualisieren Sie die Datenbank
Nachdem Sie eine Migration erstellt haben, können Sie das Datenbankschema aktualisieren, um es an das neue Modell anzupassen. Öffnen Sie dazu die Package Manager-Konsole und geben Sie den folgenden Befehl ein:
PM> Update-Database
Dadurch wird die Migration auf die Datenbank angewendet und ihr Schema aktualisiert.
Beispiel
Schauen wir uns ein Beispiel für die Verwendung von EF Core Migrations an. Angenommen, wir möchten eine einfache „Students“-Tabelle mit zwei Spalten erstellen: „Id“ und „Name“. Wir beginnen mit der Erstellung eines neuen ASP.NET Core-Webanwendungsprojekts in Visual Studio.
- Erstellen Sie ein neues EF Core-Projekt. Erstellen Sie ein neues ASP.NET Core-Webanwendungsprojekt in Visual Studio. Wählen Sie die Vorlage „Webanwendung (Model-View-Controller)“ und wählen Sie „Einzelne Benutzerkonten“ für die Authentifizierung. Nennen Sie das Projekt „EFCoreMigrationsExample“.
- Erstellen Sie einen Datenbankkontext. Erstellen Sie im Ordner „Models“ des Projekts eine neue Klasse mit dem Namen „MyDbContext“ und erben Sie sie von der DbContext-Klasse.
using Microsoft.EntityFrameworkCore; namespace EFCoreMigrationsExample.Models { public class MyDbContext : DbContext { public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { } public DbSet<Student> Students { get; set; } } }
Die Eigenschaft „Students“ ist ein DbSet, das die Tabelle „Students“ unserer Datenbank darstellt.
Erstellen Sie ein Datenbankmodell
Erstellen Sie im Ordner „Models“ des Projekts eine neue Klasse „Student“ und definieren Sie deren Eigenschaften.
namespace EFCoreMigrationsExample.Models { public class Student { public int Id { get; set; } public string Name { get; set; } } }
Aktivieren Sie EF Core-Migrationen
Öffnen Sie die Paket-Manager-Konsole und geben Sie den folgenden Befehl ein, um das EF Core-Tools-Paket zu installieren:
PM> Install-Package Microsoft.EntityFrameworkCore.Tools
Erstellen Sie eine Migration
Öffnen Sie die Package Manager-Konsole und geben Sie den folgenden Befehl ein, um eine Migration zu erstellen:
PM> Add-Migration InitialCreate
Dadurch wird eine neue Migration namens „InitialCreate“ erstellt, die die Änderungen beschreibt, die wir an unserem Datenbankmodell vorgenommen haben.
Die Migrationsdatei sollte so aussehen:
using Microsoft.EntityFrameworkCore.Migrations; namespace EFCoreMigrationsExample.Migrations { public partial class InitialCreate : Migration { protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "Students", columns: table => new { Id = table.Column<int>(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Name = table.Column<string>(type: "nvarchar(max)", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Students", x => x.Id); }); } protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "Students"); } } }
Durch die Migration wird eine neue Tabelle namens „Students“ mit Spalten für „Id“ und „Name“ erstellt. Aktualisieren Sie die Datenbank. Öffnen Sie die Paket-Manager-Konsole und geben Sie den folgenden Befehl ein, um das Datenbankschema zu aktualisieren:
PM> Update-Database
Dadurch wird die Migration auf die Datenbank angewendet und ihr Schema aktualisiert.
Jetzt können wir mit EF Core Schüler in unserer Datenbank hinzufügen, aktualisieren und löschen. Beispielsweise können wir einen neuen Schüler wie folgt zur Datenbank hinzufügen:
using EFCoreMigrationsExample.Models; namespace EFCoreMigrationsExample.Controllers { public class HomeController : Controller { private readonly MyDbContext _context; public HomeController(MyDbContext context) { _context = context; } public IActionResult Index() { var student = new Student { Name = "John" }; _context.Students.Add(student); _context.SaveChanges(); return View(); } } }
Dieser Code erstellt eine neue Instanz der Student-Klasse und setzt deren Name-Eigenschaft auf „John“. Anschließend wird der Student zum Students DbSet hinzugefügt und Änderungen in der Datenbank gespeichert.
Abschluss
EF Core-Migrationen bieten eine bequeme Möglichkeit, Datenbankschemaänderungen in Ihrer Anwendung zu verwalten.
In diesem Artikel wird gezeigt, wie Sie mithilfe von EF Core-Migrationen ein einfaches Datenbankschema erstellen, einschließlich der Erstellung eines DbContext, der Definition eines Modells, der Durchführung einer Migration und der Aktualisierung des Datenbankschemas.
Dies ist nur der Anfang dessen, was EF Core leisten kann. Mit EF Core können Sie Daten abfragen und bearbeiten, komplexe Beziehungen zwischen Tabellen erstellen und vieles mehr. Aufgrund seiner Benutzerfreundlichkeit und seines breiten Funktionsumfangs ist EF Core eine ausgezeichnete Wahl für die Erstellung datengesteuerter Anwendungen in .NET.
Dieser Artikel hat Ihnen beim Einstieg in EF Core-Migrationen geholfen. Wenn Sie Fragen oder Kommentare haben, hinterlassen Sie diese bitte unten. Viel Spaß beim Codieren!
Folge mir auf
, , , ,
Auch veröffentlicht