Entity Framework Core kan komma åt många olika databaser via plugin-bibliotek som kallas databasproviders.
Aktuella leverantörer
Important
EF Core-leverantörer skapas av en mängd olika källor. Alla leverantörer underhålls inte som en del av Microsoft Entity Framework Core Project. När du överväger en leverantör bör du utvärdera kvalitet, licensiering, support osv. för att säkerställa att de uppfyller dina krav. Se också till att du läser dokumentationen för varje leverantör för detaljerad information om versionskompatibilitet.
Important
EF Core-leverantörer fungerar vanligtvis inte i större versioner. Till exempel kommer en provider som har släppts för EF Core 8 inte att fungera med EF Core 9.
| NuGet-paket |
Databasmotorer som stöds |
Underhållare/leverantör |
Anteckningar/krav |
För EF Core |
Användbara länkar |
|
Microsoft.EntityFrameworkCore.SqlServer |
Azure SQL, SQL Server 2012 och senare, Azure Synapse Analytics |
EF Core Project (Microsoft) |
|
8, 9, 10 |
docs |
|
Microsoft.EntityFrameworkCore.Sqlite |
SQLite 3.46.1 och senare |
EF Core Project (Microsoft) |
|
8, 9, 10 |
docs |
|
Microsoft.EntityFrameworkCore.InMemory |
EF Core-databas i minnet |
EF Core Project (Microsoft) |
Limitations |
8, 9, 10 |
docs |
|
Microsoft.EntityFrameworkCore.Cosmos |
Azure Cosmos DB SQL API |
EF Core Project (Microsoft) |
|
8, 9, 10 |
docs |
|
Npgsql.EntityFrameworkCore.PostgreSQL |
PostgreSQL |
Npgsql-utvecklingsteamet |
|
8, 9 |
docs |
|
Pomelo.EntityFrameworkCore.MySql |
MySQL, MariaDB |
Pomelostiftelseprojektet |
|
8, 9 |
readme |
|
MySql.EntityFrameworkCore |
MySQL |
MySQL-projekt (Oracle) |
|
8, 9 |
docs |
|
Oracle.EntityFrameworkCore |
Oracle DB 19c och senare |
Oracle |
|
8, 9, 10 |
docs |
|
MongoDB.EntityFrameworkCore |
MongoDB |
MongoDB |
|
8 |
docs |
|
Couchbase.EntityFrameworkCore |
Couchbase |
Couchbase |
|
8, 9 |
docs |
|
Devart.Data.MySql.EFCore |
MySQL 5 och senare |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.Oracle.EFCore |
Oracle DB 9.2.0.4 och senare |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.PostgreSql.EFCore |
PostgreSQL 8.0 och senare |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.SQLite.EFCore |
SQLite 3 och senare |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.DB2.EFCore |
DB2 |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.Bigcommerce.EFCore |
BigCommerce |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.Dynamics.EFCore |
Microsoft Dynamics 365 |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.FreshBooks.EFCore |
FreshBooks |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.Magento.EFCore |
Magento |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.MailChimp.EFCore |
Mailchimp |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.QuickBooks.EFCore |
QuickBooks |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.Salesforce.EFCore |
Salesforce |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.ExactTarget.EFCore |
Salesforce MC (ExactTarget) |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.Sugar.EFCore |
SugarCRM |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.Zoho.EFCore |
Zoho CRM |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.ZohoBooks.EFCore |
Zoho-böcker |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.ZohoDesk.EFCore |
Zoho Desk |
DevArt |
Paid |
8, 9 |
docs |
|
MASES.EntityFrameworkCore.KNet |
Apache Kafka |
MASES-grupp |
Utvärderingsversion, prenumeration |
8 |
docs |
|
InterBase |
InterBase |
InterBase |
|
8 |
docs |
|
FirebirdSql.EntityFrameworkCore.Firebird |
Firebird 3.0 och senare |
Jiří Činčura |
|
8 |
docs |
|
IBM.EntityFrameworkCore |
Db2, Informix |
IBM |
Betald, Windows |
8 |
komma igång |
|
IBM.EntityFrameworkCore-lnx |
Db2, Informix |
IBM |
Betald, Linux |
8 |
komma igång |
|
IBM.EntityFrameworkCore-osx |
Db2, Informix |
IBM |
Betalversion, macOS |
8 |
komma igång |
|
EntityFrameworkCore.Jet |
Microsoft Access-filer |
CirrusRedOrg |
Windows |
8, 9 |
readme |
|
Google.Cloud.EntityFrameworkCore.Spanner |
Google Cloud Spanner |
Cloud Spanner-ekosystemet |
|
8 |
tutorial |
|
Teradata.EntityFrameworkCore |
Teradata Database 16.10 och senare |
Teradata |
|
3 |
website |
|
FileContextCore |
Lagrar data i filer |
Morris Janatzek |
I utvecklingssyfte |
3 |
readme |
|
FileBaseContext |
Lagra tabeller i filer |
k.D.g |
I utvecklingssyfte |
8, 9, 10 |
readme |
|
EntityFrameworkCore.SqlServerCompact35 |
SQL Server Compact 3.5 |
Erik Ejlskov Jensen |
.NET Framework |
2 |
wiki |
|
EntityFrameworkCore.SqlServerCompact40 |
SQL Server Compact 4.0 |
Erik Ejlskov Jensen |
.NET Framework |
2 |
wiki |
|
EntityFrameworkCore.OpenEdge |
Progress OpenEdge |
Alex Wiese |
|
2 |
readme |
|
EFCore.Snowflake |
Snowflake |
Krzysztof Sielaff |
|
8 |
readme |
|
EFCore.Kusto |
Azure Data Explorer (Kusto) |
Anas Ismail Khan |
|
8 |
readme |
|
EntityFrameworkCore.Ydb |
YDB |
YDB-team |
|
9, 10 |
website |
Lägga till en databasprovider i ditt program
De flesta databasprovidrar för EF Core distribueras som NuGet-paket och kan installeras på följande sätt:
dotnet add package provider_package_name
install-package provider_package_name
När du har installerat den konfigurerar du providern i din DbContext, antingen i metoden OnConfiguring eller i metoden AddDbContext om du använder en container för beroendeinmatning.
Följande rad konfigurerar till exempel SQL Server-providern med den angivna anslutningssträngen:
optionsBuilder.UseSqlServer(
@"Server=(localdb)\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;");
Databasprovidrar kan utöka EF Core för att aktivera funktioner som är unika för specifika databaser. Vissa begrepp är gemensamma för de flesta databaser och ingår i de primära EF Core-komponenterna. Sådana begrepp omfattar att uttrycka frågor i LINQ, transaktioner och spåra ändringar i objekt när de har lästs in från databasen.
Vissa begrepp är specifika för en viss leverantör. Med SQL Server-providern kan du till exempel konfigurera minnesoptimerade tabeller (en funktion som är specifik för SQL Server). Andra begrepp är specifika för en klass av leverantörer.
EF Core-providrar för relationsdatabaser bygger till exempel på det gemensamma Microsoft.EntityFrameworkCore.Relational-biblioteket, som tillhandahåller API:er för att konfigurera tabell- och kolumnmappningar, begränsningar för sekundärnyckel osv. Leverantörer distribueras vanligtvis som NuGet-paket.
Important
När en ny korrigeringsversion av EF Core släpps innehåller den ofta uppdateringar av Microsoft.EntityFrameworkCore.Relational-paketet.
När du lägger till en relationsdatabasprovider blir det här paketet ett transitivt beroende av ditt program.
Men många leverantörer släpps oberoende av EF Core och kanske inte uppdateras för att använda den nyare patch-versionen av paketet.
För att se till att du får alla felkorrigeringar rekommenderar vi att du lägger till korrigeringsversionen av Microsoft.EntityFrameworkCore.Relational som ett direkt beroende av ditt program.