Язык программирования C#9 и платформа .NET5
Шрифт:
Гибкое сопоставление с запросом или таблицей
Экземпляр 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
Команда scaffold
Резюме
Глава 23
"Сначала код" или "сначала база данных"
Создание проектов AutoLot.Dal и AutoLot.Models
Создание шаблонов для класса, производного от DbContext, и сущностных классов
Переключение на подход "сначала код"
Создание фабрики экземпляров класса, производного от DbContext, на этапе проектирования
Создание начальной миграции
Применение миграции
Обновление модели
Сущности
Класс BaseEntity
Принадлежащий сущностный класс Person
Сущность Car(Inventory)
Сущность Customer
Сущность Make
Сущность CreditRisk
Сущность Order
Сущность SeriLogEntry
Класс ApplicationDbContext
Обновление кода Fluent API
Сущность SeriLogEntry