Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Program Entity Framework Core (EF Core) jest dostarczany jako pakiety NuGet . Pakiety wymagane przez aplikację zależą od:
- Typ używanego systemu bazy danych (SQL Server, SQLite itp.)
- Wymagane funkcje platformy EF Core
Typowym procesem instalowania pakietów jest:
- Zdecyduj się na dostawcę bazy danych i zainstaluj odpowiedni pakiet (zobacz poniżej)
- Zainstaluj również elementy Microsoft.EntityFrameworkCore i Microsoft.EntityFrameworkCore.Relational , jeśli korzystasz z dostawcy relacyjnej bazy danych. Pomaga to zagwarantować, że są używane spójne wersje, a także oznacza, że pakiet NuGet poinformuje Cię o wysłaniu nowych wersji pakietów.
- Opcjonalnie zdecyduj, jakiego rodzaju narzędzia potrzebujesz, i zainstaluj odpowiednie pakiety dla tego (zobacz poniżej)
Aby uzyskać pomoc dotyczącą rozpoczynania pracy z programem EF Core, zobacz Wprowadzenie do programu Entity Framework Core.
Wersje pakietów
Upewnij się, że zainstalowano tę samą wersję wszystkich pakietów EF Core dostarczanych przez firmę Microsoft. Jeśli na przykład jest zainstalowana wersja 5.0.3 microsoft.EntityFrameworkCore.SqlServer, wszystkie inne pakiety Microsoft.EntityFrameworkCore.* również muszą mieć wartość 5.0.3.
Upewnij się również, że wszystkie pakiety zewnętrzne są zgodne z używaną wersją programu EF Core. W szczególności sprawdź, czy zewnętrzny dostawca bazy danych obsługuje używaną wersję programu EF Core. Nowe wersje główne platformy EF Core zwykle wymagają zaktualizowanego dostawcy bazy danych.
Ostrzeżenie
Pakiet NuGet nie wymusza spójnych wersji pakietów. Zawsze dokładnie sprawdź, które wersje pakietu odwołują się do .csproj
pliku lub równoważnego.
Dostawcy baz danych
Program EF Core obsługuje różne systemy baz danych przy użyciu "dostawców baz danych". Każdy system ma własnego dostawcę bazy danych, który jest dostarczany jako pakiet NuGet. Aplikacje powinny instalować co najmniej jeden z tych pakietów dostawcy.
Typowi dostawcy baz danych są wymienieni w poniższej tabeli. Zobacz dostawcy baz danych, aby uzyskać bardziej kompleksową listę dostępnych dostawców.
System bazy danych | Pakiet |
---|---|
SQL Server i Usługi SQL Azure | Microsoft.EntityFrameworkCore.SqlServer |
SQLite | Microsoft.EntityFrameworkCore.Sqlite |
Azure Cosmos DB | Microsoft.EntityFrameworkCore.Cosmos |
PostgreSQL | Npgsql.EntityFrameworkCore.PostgreSQL* |
MySQL | Pomelo.EntityFrameworkCore.MySql* |
Baza danych ef Core w pamięci** | Microsoft.EntityFrameworkCore.InMemory |
*Są to popularni, wysokiej jakości dostawcy open source opracowani i dostarczani przez społeczność. Inni dostawcy wymienieni są wysłani przez firmę Microsoft.
**Dokładnie zastanów się, czy należy użyć dostawcy w pamięci. Nie jest przeznaczony do użytku produkcyjnego, a także może nie być najlepszym rozwiązaniem do testowania.
Narzędzia
Korzystanie z narzędzi na potrzeby migracji platformy EF Core i inżynierii odwrotnej (szkieletu) z istniejącej bazy danych wymaga zainstalowania odpowiedniego pakietu narzędzi:
- dotnet-ef dla wieloplatformowych narzędzi wiersza polecenia
- Microsoft.EntityFrameworkCore.Tasks dla zadań MSBuild umożliwiających integrację w czasie kompilacji.
- Narzędzia Microsoft.EntityFrameworkCore.Tools for PowerShell, które działają w konsoli programu Visual Studio Menedżer pakietów
Aby uzyskać więcej informacji na temat używania narzędzi EF Core, zobacz Entity Framework Core Tools Reference (Dokumentacja narzędzi platformy Entity Framework Core), w tym sposób poprawnego instalowania dotnet-ef
narzędzia w projekcie lub globalnie.
Napiwek
Domyślnie pakiet Microsoft.EntityFrameworkCore.Design jest instalowany w taki sposób, że nie zostanie wdrożony z aplikacją. Oznacza to również, że jego typy nie mogą być przechodnio używane w innych projektach. Jeśli potrzebujesz dostępu do typów w tym pakiecie, użyj normalnego PackageReference
pliku .csproj
lub równoważnego. Aby uzyskać więcej informacji, zobacz Usługi czasu projektowania.
Pakiety rozszerzeń
Istnieje wiele rozszerzeń dla platformy EF Core publikowanych zarówno przez firmę Microsoft, jak i innych firm jako pakiety NuGet. Często używane pakiety obejmują:
Funkcje | Pakiet | Dodatkowe zależności |
---|---|---|
Serwery proxy do ładowania z opóźnieniem i śledzenia zmian | Microsoft.EntityFrameworkCore.Proxies | Castle.Core |
Obsługa przestrzenna programu SQL Server | Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite | NetTopologySuite i NetTopologySuite.IO.SqlServerBytes |
Obsługa przestrzenna sqlite | Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite | NetTopologySuite i NetTopologySuite.IO.SpatiaLite |
Obsługa przestrzenna bazy danych PostgreSQL | Npgsql.EntityFrameworkCore.PostgreSQL.NetTopologySuite | NetTopologySuite i NetTopologySuite.IO.PostGIS (za pośrednictwem aplikacji Npgsql.NetTopologySuite) |
Obsługa przestrzenna bazy danych MySQL | Pomelo.EntityFrameworkCore.MySql.NetTopologySuite | NetTopologySuite |
Inne pakiety
Inne pakiety EF Core są ściągane jako zależności pakietu dostawcy bazy danych. Można jednak dodać jawne odwołania do pakietów, aby program NuGet dostarczał powiadomienia po wydaniu nowych wersji.
Funkcje | Pakiet |
---|---|
Podstawowe funkcje platformy EF Core | Microsoft.EntityFrameworkCore |
Typowe funkcje relacyjnej bazy danych | Microsoft.EntityFrameworkCore.Relational |
Uproszczony pakiet dla atrybutów programu EF Core itp. | Microsoft.EntityFrameworkCore.Abstractions |
Analizatory kodu Roslyn na potrzeby użycia platformy EF Core | Microsoft.EntityFrameworkCore.Analyzers |
Dostawca EF Core SQLite bez natywnej zależności SQLite | Microsoft.EntityFrameworkCore.Sqlite.Core |
Implementacja funkcji czasu projektowania współużytkowane przez narzędzia EF | Microsoft.EntityFrameworkCore.Design |
Pakiety na potrzeby testowania dostawcy bazy danych
Następujące pakiety są używane do testowania dostawców baz danych wbudowanych w zewnętrzne repozytoria GitHub. Zobacz przykłady efcore.pg i Pomelo.EntityFrameworkCore.MySql . Aplikacje nie powinny instalować tych pakietów.
Funkcje | Pakiet |
---|---|
Testy dla dowolnego dostawcy bazy danych | Microsoft.EntityFrameworkCore.Specification.Tests |
Testy dostawców relacyjnej bazy danych | Microsoft.EntityFrameworkCore.Relational.Specification.Tests |
Przestarzałe pakiety
Nie instaluj następujących przestarzałych pakietów i usuń je, jeśli są one obecnie zainstalowane w projektach:
- Microsoft.EntityFrameworkCore.Relational.Design
- Microsoft.EntityFrameworkCore.Tools.DotNet
- Microsoft.EntityFrameworkCore.SqlServer.Design
- Microsoft.EntityFrameworkCore.Sqlite.Design
- Microsoft.EntityFrameworkCore.Relational.Design.Specification.Tests