Поставщики баз данных
Entity Framework Core поддерживает доступ к множеству разных баз данных с использованием библиотек подключаемых модулей, которые называются поставщиками баз данных.
Текущие поставщики
Важно!
Поставщики EF Core поступают из самых разных источников. Не все поставщики поддерживаются в рамках проекта Microsoft Entity Framework Core. Выбирая поставщика, обязательно оцените качество, лицензирование, поддержку и другие показатели на соответствие вашим требованиям. Также обязательно ознакомьтесь подробными сведениями о совместимости версий, представленными в документации по каждому поставщику.
Важно!
Поставщики EF Core обычно не работают в основных версиях. Например, поставщик, выпущенный для EF Core 6, не будет работать с EF Core 7.
Добавление поставщика базы данных в приложение
Большинство поставщиков баз данных для EF Core распространяется в виде пакетов NuGet. Их можно установить следующим образом:
dotnet add 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
в приложение в виде прямых зависимостей.