Язык программирования C#9 и платформа .NET5
Шрифт:
Часть VII
Глава 22
Инструменты объектно-реляционного отображения
Роль Entity Framework Core
Строительные блоки Entity Framework Core
Класс DbContext
Создание класса, производного от DbContext
Конфигурирование экземпляра DbContext
Метод OnModelCreating
Сохранение изменений
Поддержка транзакций и точек сохранения
Транзакции и стратегии выполнения
События SavingChanges/SavedChanges
Класс DbSet<T>
Типы запросов
Гибкое сопоставление с запросом или таблицей
Экземпляр ChangeTracker
События ChangeTracker
Сброс состояния DbContext
Сущности
Сопоставление свойств со столбцами
Сопоставление классов с таблицами
Сопоставление "таблица на иерархию" (ТРН)
Сопоставление "таблица на тип" (ТРТ)
Навигационные свойства и внешние ключи
Отсутствие свойств для внешних ключей
Отношения "один ко многим"
Отношения "один к одному"
Отношения "многие ко многим" (нововведение в версии EF Core 5)
Каскадное поведение
Необязательные отношения
Обязательные отношения
Соглашения, связанные с сущностями
Отображение свойств на столбцы
Аннотации данных Entity Framework
Аннотации и навигационные свойства
Интерфейс Fluent API
Отображение классов и свойств
Стандартные значения
Вычисляемые столбцы
Отношения "один ко многим"
Отношения "один к одному"
Отношения "многие ко многим"
Соглашения, аннотации данных и Fluent API — что выбрать?
Выполнение запросов
Смешанное выполнение на клиентской и серверной сторонах
Сравнение отслеживаемых и неотслеживаемых запросов
Важные функциональные средства EF Core
Обработка значений, генерируемых базой данных
Проверка параллелизма
Устойчивость подключений
Связанные данные
Энергичная загрузка
Фильтрованные включаемые данные
Энергичная загрузка с разделением запросов
Явная загрузка
Ленивая загрузка
Глобальные фильтры запросов
Глобальные фильтры запросов на навигационных свойствах
Явная загрузка с глобальными фильтрами запросов
Выполнение низкоуровневых запросов SQL с помощью LINQ
Пакетирование операторов
Принадлежащие сущностные типы
Сопоставление с функциями базы данных
Команды CLI глобального инструмента EF Core
Команды для управления миграциями
Команда add
Исключение таблиц из миграций
Команда remove
Команда list
Команда script
Команды для управления базой данных
Команда drop
Команда update
Команды для управления типами DbContext