Freigeben über


NuGet-Pakete für EF Core

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:

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:

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