Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Entity Framework Core (EF Core) wird in Form von NuGet-Paketen bereitgestellt. Die von einer Anwendung benötigten Pakete hängen von diesen Faktoren ab:
- der Art des verwendeten Datenbanksystems (z. B. SQL Server oder SQLite)
- den benötigten EF Core-Features
Die Paketinstallation läuft in der Regel folgendermaßen ab:
- Wählen Sie einen Datenbankanbieter aus, und installieren Sie das entsprechende Paket.
- Installieren Sie außerdem Microsoft.EntityFrameworkCore und Microsoft.EntityFrameworkCore.Relational, wenn Sie einen Anbieter für relationale Datenbanken verwenden. So können Sie dafür sorgen, dass konsistente Versionen verwendet werden. Außerdem informiert NuGet Sie, wenn neue Paketversionen bereitgestellt wurden.
- Optional: Wählen Sie die benötigten Tools aus, und installieren Sie die entsprechenden Pakete (im Folgenden aufgeführt).
Weitere Informationen zu den ersten Schritten mit EF Core finden Sie unter Tutorial zu den ersten Schritten mit Entity Framework Core.
Paketversionen
Installieren Sie für alle von Microsoft bereitgestellten EF Core-Pakete die gleiche Version. Wenn beispielsweise Version 5.0.3 von Microsoft.EntityFrameworkCore.SqlServer installiert ist, muss von allen anderen Microsoft.EntityFrameworkCore.*-Pakete auch Version 5.0.3 installiert sein.
Achten Sie ebenfalls darauf, dass externe Pakete mit der verwendeten EF Core-Version kompatibel sind. Überprüfen Sie insbesondere, ob der externe Datenbankanbieter die von Ihnen verwendete EF Core-Version unterstützt. Für neue Hauptversionen von EF Core wird in der Regel ein aktualisierter Datenbankanbieter benötigt.
Warnung
NuGet erzwingt die Konsistenz der Paketversionen nicht. Überprüfen Sie daher stets sorgfältig, auf welche Paketversionen Sie in .csproj
-Dateien oder ähnlichen Dateien verweisen.
Datenbankanbieter
EF Core unterstützt verschiedene Datenbanksysteme mithilfe von Datenbankanbietern. Jedes System besitzt einen eigenen Datenbankanbieter, der in Form eines NuGet-Pakets bereitgestellt wird. Anwendungen sollten mindestens eines dieser Anbieterpakete installieren.
In der folgenden Tabelle finden Sie die gängigsten Datenbankanbieter. Eine umfassendere Liste der verfügbaren Anbieter finden Sie unter Datenbankanbieter.
Datenbanksystem | Paket |
---|---|
SQL Server und SQL Azure | Microsoft.EntityFrameworkCore.SqlServer |
SQLite | Microsoft.EntityFrameworkCore.Sqlite |
Azure Cosmos DB | Microsoft.EntityFrameworkCore.Cosmos |
PostgreSQL | Npgsql.EntityFrameworkCore.PostgreSQL* |
MySQL | Pomelo.EntityFrameworkCore.MySql* |
In-Memory-Datenbank für EF Core** | Microsoft.EntityFrameworkCore.InMemory |
*Diese beliebten, hochwertigen Open-Source-Anbieter werden von der Community entwickelt und bereitgestellt. Die restlichen Anbieter auf der Liste werden von Microsoft bereitgestellt.
**Überlegen Sie sorgfältig, ob Sie In-Memory-Anbieter einsetzen möchten. Sie sind nicht für Produktionszwecke vorgesehen und auch für Tests nicht optimal.
Extras
Wenn Sie Tools für EF Core-Migrationen und Reverse Engineering (Gerüstbau) aus einer vorhandenen Datenbank verwenden möchten, müssen Sie die entsprechenden Toolpakete installieren:
- dotnet-ef für plattformübergreifende Befehlszeilentools
- Microsoft.EntityFrameworkCore.Tasks für MSBuild-Aufgaben, die die Integration von Buildzeit ermöglichen.
- Microsoft.EntityFrameworkCore.Tools für PowerShell-Tools, die in der Paket-Manager-Konsole von Visual Studio eingesetzt werden
Unter Entity Framework Core Tools-Referenz finden Sie weitere Informationen zu EF Core-Tools, einschließlich zur ordnungsgemäßen Installation des Tools dotnet-ef
(in einem Projekt oder global).
Tipp
Standardmäßig wird das Paket Microsoft.EntityFrameworkCore.Design so installiert, dass es nicht mit Ihrer Anwendung bereitgestellt wird. Das bedeutet auch, dass die Typen nicht transitiv in anderen Projekten verwendet werden können. Verwenden Sie das übliche PackageReference
-Format in Ihrer .csproj
-Datei oder einer ähnlichen Datei, wenn Sie Zugriff auf die Typen in diesem Paket benötigen. Weitere Informationen finden Sie unter Entwurfszeitdienste.
Erweiterungspakete
Es gibt viele Erweiterungen für EF Core, die von Microsoft und Drittanbietern als NuGet-Pakete veröffentlicht werden. Zu den häufig eingesetzten Paketen zählen insbesondere:
Funktionalität | Paket | Zusätzliche Abhängigkeiten |
---|---|---|
Proxys für Lazy Loading und Änderungsnachverfolgung | Microsoft.EntityFrameworkCore.Proxies | Castle.Core |
Unterstützung für räumliche Daten in SQL Server | Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite | NetTopologySuite und NetTopologySuite.IO.SqlServerBytes |
Unterstützung für räumliche Daten in SQLite | Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite | NetTopologySuite und NetTopologySuite.IO.SpatiaLite |
Unterstützung für räumliche Daten in PostgreSQL | Npgsql.EntityFrameworkCore.PostgreSQL.NetTopologySuite | NetTopologySuite und NetTopologySuite.IO.PostGIS (über Npgsql.NetTopologySuite) |
Unterstützung für räumliche Daten in MySQL | Pomelo.EntityFrameworkCore.MySql.NetTopologySuite | NetTopologySuite |
Andere Pakete
Andere EF Core-Pakete werden als Abhängigkeiten des Datenbankanbieter-Pakets gepullt. Sie sollten jedoch explizite Paketverweise für diese hinzufügen, damit NuGet Sie benachrichtigt, wenn neue Versionen veröffentlicht werden.
Funktionalität | Paket |
---|---|
EF Core-Grundfunktionen | Microsoft.EntityFrameworkCore |
Allgemeine Funktionen für relationale Datenbanken | Microsoft.EntityFrameworkCore.Relational |
Schlankes Paket für EF Core-Attribute usw. | Microsoft.EntityFrameworkCore.Abstractions |
Roslyn-Codeanalysetool zur Verwendung in EF Core | Microsoft.EntityFrameworkCore.Analyzers |
SQLite-Anbieter für EF Core ohne native SQLite-Abhängigkeit | Microsoft.EntityFrameworkCore.Sqlite.Core |
Implementierung der Entwurfszeitfunktionalität, die von EF-Tools gemeinsam genutzt wird | Microsoft.EntityFrameworkCore.Design |
Pakete für Datenbankanbieter-Tests
Die folgenden Pakete werden verwendet, um Datenbankanbieter zu testen, die in externen GitHub-Repositorys erstellt wurden. Beispiele finden Sie unter efcore.pg und Pomelo.EntityFrameworkCore.MySql. Anwendungen sollten diese Pakete nicht installieren.
Funktionalität | Paket |
---|---|
Tests für beliebige Datenbankanbieter | Microsoft.EntityFrameworkCore.Specification.Tests |
Tests für Anbieter relationaler Datenbanken | Microsoft.EntityFrameworkCore.Relational.Specification.Tests |
Veraltete Pakete
Installieren Sie die folgenden veralteten Pakete nicht, und entfernen Sie sie, wenn diese zurzeit in Ihren Projekten installiert sind:
- Microsoft.EntityFrameworkCore.Relational.Design
- Microsoft.EntityFrameworkCore.Tools.DotNet
- Microsoft.EntityFrameworkCore.SqlServer.Design
- Microsoft.EntityFrameworkCore.Sqlite.Design
- Microsoft.EntityFrameworkCore.Relational.Design.Specification.Tests