Entity Framework Core поддерживает доступ к множеству разных баз данных с использованием библиотек подключаемых модулей, которые называются поставщиками баз данных.
Текущие поставщики
Внимание
Поставщики EF Core поступают из самых разных источников. Не все поставщики поддерживаются в рамках проекта Microsoft Entity Framework Core. Выбирая поставщика, обязательно оцените качество, лицензирование, поддержку и другие показатели на соответствие вашим требованиям. Также обязательно ознакомьтесь подробными сведениями о совместимости версий, представленными в документации по каждому поставщику.
Внимание
Поставщики 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 |
Документация |
Microsoft.EntityFrameworkCore.Sqlite |
начиная с SQLite 3.46.1 |
Проект EF Core (Майкрософт) |
|
8, 9 |
Документация |
Microsoft.EntityFrameworkCore.InMemory |
Выполняющаяся в памяти база данных EF Core |
Проект EF Core (Майкрософт) |
Ограничения |
8, 9 |
Документация |
Microsoft.EntityFrameworkCore.Cosmos |
API SQL Azure Cosmos DB |
Проект EF Core (Майкрософт) |
|
8, 9 |
Документация |
Npgsql.EntityFrameworkCore.PostgreSQL |
PostgreSQL |
Команда разработчиков Npgsql |
|
8, 9 |
Документация |
Pomelo.EntityFrameworkCore.MySql |
MySQL, MariaDB |
Проект Pomelo Foundation |
|
8, 9 |
readme |
MySql.EntityFrameworkCore |
MySQL |
Проект MySQL (Oracle) |
|
8, 9 |
Документация |
Oracle.EntityFrameworkCore |
Oracle DB 11.2 и выше |
Оракул |
|
8, 9 |
сайт |
MongoDB.EntityFrameworkCore |
MongoDB |
Система MongoDB |
|
8 |
Документация |
Couchbase.EntityFrameworkCore |
Couchbase |
Couchbase. |
|
8, 9 |
Документация |
Devart.Data.MySql.EFCore |
MySQL 5 и выше |
DevArt |
Платный |
8, 9 |
Документация |
Devart.Data.Oracle.EFCore |
Oracle DB 9.2.0.4 и выше |
DevArt |
Платный |
8, 9 |
Документация |
Devart.Data.PostgreSql.EFCore |
PostgreSQL 8.0 и выше |
DevArt |
Платный |
8, 9 |
Документация |
Devart.Data.SQLite.EFCore |
SQLite 3 и выше |
DevArt |
Платный |
8, 9 |
Документация |
Devart.Data.DB2.EFCore |
DB2 |
DevArt |
Платный |
8, 9 |
Документация |
Devart.Data.Big commerce.EFCore |
Big Commerce |
DevArt |
Платный |
8, 9 |
Документация |
Devart.Data.Dynamics.EFCore |
Майкрософт Dynamics 365 |
DevArt |
Платный |
8, 9 |
Документация |
Devart.Data.FreshBooks.EFCore |
FreshBooks |
DevArt |
Платный |
8, 9 |
Документация |
Devart.Data.Magento.EFCore |
Magento |
DevArt |
Платный |
8, 9 |
Документация |
Devart.Data.MailChimp.EFCore |
Mailchimp |
DevArt |
Платный |
8, 9 |
Документация |
Devart.Data.QuickBooks.EFCore |
QuickBooks. |
DevArt |
Платный |
8, 9 |
Документация |
Devart.Data.Salesforce.EFCore |
Salesforce |
DevArt |
Платный |
8, 9 |
Документация |
Devart.Data.ExactTarget.EFCore |
Salesforce MC (ExactTarget) |
DevArt |
Платный |
8, 9 |
Документация |
Devart.Data.Sugar.EFCore |
SugarCRM |
DevArt |
Платный |
8, 9 |
Документация |
Devart.Data.Zoho.EFCore |
Zoho CRM |
DevArt |
Платный |
8, 9 |
Документация |
Devart.Data.ZohoBooks.EFCore |
Зохо Книги |
DevArt |
Платный |
8, 9 |
Документация |
Devart.Data.ZohoDesk.EFCore |
Zoho Desk |
DevArt |
Платный |
8, 9 |
Документация |
MASES. EntityFrameworkCore.KNet |
Apache Kafka |
Группа MASES |
Пробная версия, подписка |
8 |
Документация |
InterBase |
InterBase |
InterBase |
|
8 |
Документация |
FirebirdSql.EntityFrameworkCore.Firebird |
Firebird 3.0 и выше |
Jií Činčura |
|
8 |
Документация |
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 |
Виндоус |
8, 9 |
readme |
Google.Cloud.EntityFrameworkCore.Spanner |
Google Cloud Spanner |
Экосистема Cloud Spanner |
|
8 |
учебник |
Teradata.EntityFrameworkCore |
Teradata Database 16.10 и выше |
Teradata |
|
3 |
сайт |
FileContextCore |
Хранение данных в файлах |
Моррис Янацек (Morris Janatzek) |
Для разработки |
3 |
readme |
FileBaseContext |
Хранение таблиц в файлах |
k.D.g |
Для разработки |
8, 9 |
readme |
EntityFrameworkCore.SqlServerCompact35 |
SQL Server Compact 3.5 |
Эрик Эйлсков Йенсен (Erik Ejlskov Jensen) |
Платформа .NET Framework |
2 |
Вики-сайт |
EntityFrameworkCore.SqlServerCompact40 |
SQL Server Compact 4.0 |
Эрик Эйлсков Йенсен (Erik Ejlskov Jensen) |
Платформа .NET Framework |
2 |
Вики-сайт |
EntityFrameworkCore.OpenEdge |
Ход выполнения OpenEdge |
Алекс Вайс (Alex Wiese) |
|
2 |
readme |
EFCore.Snowflake |
Снежинка |
Krzysztof Sielaff |
|
8 |
readme |
Добавление поставщика базы данных в приложение
Большинство поставщиков баз данных для 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.
Внимание
Выпускаемые исправления EF Core часто содержат обновления пакета Microsoft.EntityFrameworkCore.Relational
.
При добавлении поставщика реляционной базы данных этот пакет становится транзитивной зависимостью вашего приложения.
Тем не менее многие поставщики выпускаются независимо от EF Core и могут не обновляться при выпуске новых исправлений этого пакета.
Чтобы гарантировать исправление всех обнаруженных ошибок, рекомендуется добавлять исправления Microsoft.EntityFrameworkCore.Relational
в приложение в виде прямых зависимостей.