Общие сведения об Entity Framework Core

Завершено

Entity Framework Core (EF Core) — это объектно-реляционный сопоставителя (ORM). ORM предоставляет уровень между моделью предметной области, реализуемой в коде, и базой данных. EF Core — это API доступа к данным, который позволяет взаимодействовать с базой данных с помощью стандартных объектов .NET (POCOs) и синтаксиса строго типизированных языковых интегрированных запросов (LINQ).

В EF Core база данных абстрагируется за POCOS .NET. EF Core обрабатывает прямое взаимодействие с базовой базой данных. При использовании этого API вы можете тратить меньше времени на преобразование запросов в базу данных и из нее и написание SQL, а также больше времени на важную бизнес-логику.

EF Core позволяет выполнять такие задачи:

  • Загрузка данных в виде объектов C# (сущностей).
  • Добавляйте, изменяйте и удаляйте данные, вызывая методы для сущностей.
  • Сопоставление нескольких таблиц базы данных с одной сущностью C#.
  • Решение проблем параллелизма, возникающих, когда несколько пользователей одновременно пытаются обновить одну и ту же запись.
  • Используйте строго типизированный синтаксис LINQ (System.Linq) для запроса к базе данных.
  • Получите доступ к нескольким базам данных, включая SQL Server, SQLite, Azure Cosmos DB, PostgreSQL, MySQL и многое другое.
  • Создание модели предметной области на основе существующей базы данных.
  • Управление схемой базы данных на основе модели предметной области.
  • Зафиксируйте изменения в сложных, глубоких или широких графах объектов связанных сущностей с помощью одного вызова метода.

Рассмотрение архитектуры EF Core

На следующей схеме показана архитектура EF Core:

Схема, на которую показаны компоненты и процессы в архитектуре Entity Framework Core.

DbContext — это специальный класс, представляющий единицу работы. DbContext предоставляет методы, которые можно использовать для настройки параметров, строк подключения, ведения журнала и модели, используемой для сопоставления домена с базой данных.

Классы, производные от DbContext:

  • Представляют сеанс работы с базой данных.
  • Сохраняют и запрашивают экземпляры сущностей.
  • Включите свойства типа DbSet<T> , представляющие таблицы в базе данных.

Поставщик EF Core преобразует изменения графа объекта в SQL.

Поставщик базы данных:

  • Библиотека подключаемых модулей, предназначенная для определенного ядра СУБД, например для SQL Server, Azure Cosmos DB или PostgreSQL.
  • Преобразовывает вызовы методов и запросов LINQ в вызовы и запросы на основе собственного диалекта SQL базы данных.
  • Расширяет возможности EF Core для включения функций, уникальных для ядра СУБД.

Управление схемами базы данных

EF Core предоставляет два основных способа синхронизации модели EF Core и схемы базы данных:

  • Миграции (модель как источник истины)
  • Реконструирование (база данных в качестве источника истины)

Чтобы выбрать один из этих вариантов, определите, является ли модель EF Core или схема базы данных источником истины.

Миграции

В реальных проектах модели данных изменяются по мере реализации функций приложения. При добавлении новых сущностей или их удалении схемы базы данных должны меняться соответствующим образом. Функция миграции EF Core позволяет постепенно обновлять схему базы данных, чтобы поддерживать ее синхронизацию с моделью данных приложения при сохранении существующих данных в базе данных.

Когда вносится изменение модели данных, разработчик использует средства EF Core для добавления соответствующей миграции. EF Core сравнивает текущую модель с snapshot предыдущей модели, чтобы определить различия. Создается код на C# для применения изменений. Файлы C# можно изменить для пользовательского поведения или для заполнения данных. Файлы отслеживаются в системе управления версиями проекта, как и любой другой исходный файл.

После создания новой миграции ее можно применить к базе данных различными способами. EF Core записывает все примененные миграции в специальную таблицу журнала. В таблице журнала хранится запись о том, какие миграции были применены.

Реконструирование

Реконструирование — это процесс формирования шаблонов классов модели сущностей и класса DbContext на основе схемы базы данных. Этот подход часто используется с существующими или общими базами данных, управляемыми администратором базы данных.

В следующем уроке вы приступите к работе с EF Core с помощью миграции.

Проверьте свои знания

1.

Какой класс предоставляет базовый набор операций, которые можно использовать для настройки базы данных и взаимодействия с ней?