Entity Framework Core поддерживает доступ к множеству разных баз данных с использованием библиотек подключаемых модулей, которые называются поставщиками баз данных.
Текущие поставщики
Important
Поставщики EF Core поступают из самых разных источников. Не все поставщики поддерживаются в рамках проекта Microsoft Entity Framework Core. Выбирая поставщика, обязательно оцените качество, лицензирование, поддержку и другие показатели на соответствие вашим требованиям. Также обязательно ознакомьтесь подробными сведениями о совместимости версий, представленными в документации по каждому поставщику.
Important
Поставщики EF Core обычно не работают в основных версиях. Например, поставщик, выпущенный для EF Core 8, не будет работать с EF Core 9.
| Пакет NuGet |
Поддерживаемые ядра СУБД |
Программа обслуживания или поставщик |
Примечания и требования |
Для EF Core |
Полезные ссылки |
|
Microsoft.EntityFrameworkCore.SqlServer |
Azure SQL, SQL Server 2012 и далее, Azure Synapse Analytics |
Проект EF Core (Майкрософт) |
|
8, 9, 10 |
docs |
|
Microsoft.EntityFrameworkCore.Sqlite |
начиная с SQLite 3.46.1 |
Проект EF Core (Майкрософт) |
|
8, 9, 10 |
docs |
|
Microsoft.EntityFrameworkCore.InMemory |
Выполняющаяся в памяти база данных EF Core |
Проект EF Core (Майкрософт) |
Limitations |
8, 9, 10 |
docs |
|
Microsoft.EntityFrameworkCore.Cosmos |
API SQL Azure Cosmos DB |
Проект EF Core (Майкрософт) |
|
8, 9, 10 |
docs |
|
Npgsql.EntityFrameworkCore.PostgreSQL |
PostgreSQL |
Команда разработчиков Npgsql |
|
8, 9 |
docs |
|
Pomelo.EntityFrameworkCore.MySql |
MySQL, MariaDB |
Проект Pomelo Foundation |
|
8, 9 |
readme |
|
MySql.EntityFrameworkCore |
MySQL |
Проект MySQL (Oracle) |
|
8, 9 |
docs |
|
Oracle.EntityFrameworkCore |
Oracle DB 19c и далее |
Oracle |
|
8, 9, 10 |
docs |
|
MongoDB.EntityFrameworkCore |
MongoDB |
MongoDB |
|
8 |
docs |
|
Couchbase.EntityFrameworkCore |
Couchbase |
Couchbase |
|
8, 9 |
docs |
|
Devart.Data.MySql.EFCore |
MySQL 5 и выше |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.Oracle.EFCore |
Oracle DB 9.2.0.4 и выше |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.PostgreSql.EFCore |
PostgreSQL 8.0 и выше |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.SQLite.EFCore |
SQLite 3 и выше |
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 |
Майкрософт 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 |
Зохо Книги |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.ZohoDesk.EFCore |
Zoho Desk |
DevArt |
Paid |
8, 9 |
docs |
|
MASES.EntityFrameworkCore.KNet |
Apache Kafka |
Группа MASES |
Пробная версия, подписка |
8 |
docs |
|
InterBase |
InterBase |
InterBase |
|
8 |
docs |
|
FirebirdSql.EntityFrameworkCore.Firebird |
Firebird 3.0 и выше |
Jií Činčura |
|
8 |
docs |
|
IBM.EntityFrameworkCore |
Db2, Informix |
IBM |
Платная версия Windows |
8 |
Начало работы |
|
IBM.EntityFrameworkCore-lnx |
Db2, Informix |
IBM |
Платные, Linux |
8 |
Начало работы |
|
IBM.EntityFrameworkCore-osx |
Db2, Informix |
IBM |
Платные, macOS |
8 |
Начало работы |
|
EntityFrameworkCore.Jet |
Файлы Microsoft Access |
CirrusRedOrg |
Windows |
8, 9 |
readme |
|
Google.Cloud.EntityFrameworkCore.Spanner |
Google Cloud Spanner |
Экосистема Cloud Spanner |
|
8 |
tutorial |
|
Teradata.EntityFrameworkCore |
Teradata Database 16.10 и выше |
Teradata |
|
3 |
website |
|
FileContextCore |
Хранение данных в файлах |
Моррис Джанацек |
Для разработки |
3 |
readme |
|
FileBaseContext |
Хранение таблиц в файлах |
k.D.g |
Для разработки |
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 |
Прогресс OpenEdge |
Алекс Wiese |
|
2 |
readme |
|
EFCore.Snowflake |
Snowflake |
Krzysztof Sielaff |
|
8 |
readme |
|
EFCore.Kusto |
Azure Data Explorer (Kusto) |
Анас Исмаил Хан |
|
8 |
readme |
|
EntityFrameworkCore.Ydb |
YDB |
Команда YDB |
|
9, 10 |
website |
Добавление поставщика базы данных в приложение
Большинство поставщиков баз данных для EF Core распространяется в виде пакетов NuGet. Их можно установить следующим образом:
dotnet add package provider_package_name
install-package provider_package_name
После установки настройка поставщика осуществляется в DbContext с использованием либо метода OnConfiguring, либо метода AddDbContext (если применяется контейнер внедрения зависимостей).
Например, в следующей строке настраивается поставщик SQL Server с использованием переданной строки подключения:
optionsBuilder.UseSqlServer(
@"Server=(localdb)\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;");
Поставщики баз данных позволяют расширить возможности EF Core, реализуя уникальные функции для конкретных баз данных. Некоторые концепции являются общими для большинства баз данных и включены в основной набор компонентов EF Core. К ним относятся выражение запросов с помощью LINQ, транзакции и отслеживание изменений объектов при их загрузке из базы данных.
Некоторые концепции характерны для определенного поставщика. Например, поставщик SQL Server позволяет настроить таблицы, оптимизированные для памяти (функция, относящаяся к SQL Server). Другие концепции характерны для класса поставщиков.
Например, поставщики EF Core для реляционных баз данных создаются в общей Microsoft.EntityFrameworkCore.Relational библиотеке, которая предоставляет API для настройки сопоставлений таблиц и столбцов, ограничений внешнего ключа и т. д. Поставщики обычно распределяются как пакеты NuGet.
Important
Выпускаемые исправления EF Core часто содержат обновления пакета Microsoft.EntityFrameworkCore.Relational.
При добавлении поставщика реляционной базы данных этот пакет становится транзитивной зависимостью вашего приложения.
Тем не менее многие поставщики выпускаются независимо от EF Core и могут не обновляться при выпуске новых исправлений этого пакета.
Чтобы гарантировать исправление всех обнаруженных ошибок, рекомендуется добавлять исправления Microsoft.EntityFrameworkCore.Relational в приложение в виде прямых зависимостей.