Язык программирования C#9 и платформа .NET5
Шрифт:
Команда scaffold
Резюме
Глава 23
"Сначала код" или "сначала база данных"
Создание проектов AutoLot.Dal и AutoLot.Models
Создание шаблонов для класса, производного от DbContext, и сущностных классов
Переключение на подход "сначала код"
Создание начальной миграции
Применение миграции
Обновление модели
Сущности
Класс BaseEntity
Принадлежащий сущностный класс Person
Сущность Car(Inventory)
Сущность Customer
Сущность Make
Сущность CreditRisk
Сущность Order
Сущность SeriLogEntry
Класс ApplicationDbContext
Обновление кода Fluent API
Сущность SeriLogEntry
Сущность CreditRisk
Сущность Customer
Сущность Make
Сущность Order
Сущность Car
Специальные исключения
Переопределение метода SaveChanges
Обработка событий DbContext и ChangeTracker
Создание миграции и обновление базы данных
Добавление представления базы данных и хранимой процедуры
Добавление класса MigrationHelpers
Обновление и применение миграции
Добавление модели представления
Добавление класса модели представления
Добавление класса модели представления к ApplicationDbContext
Добавление хранилищ
Добавление базового интерфейса IRepo
Добавление класса BaseRepo
Реализация общих методов чтения
Реализация методов добавления, обновления и удаления
Интерфейсы хранилищ, специфичных для сущностей
Интерфейс хранилища данных об автомобилях
Интерфейс хранилища данных о кредитных рисках
Интерфейс хранилища данных о заказчиках
Интерфейс хранилища данных о производителях
Интерфейс хранилища данных о заказах
Реализация классов хранилищ, специфичных для сущностей
Хранилище данных об автомобилях
Хранилище данных о кредитных рисках
Хранилище данных о заказчиках
Хранилище данных о производителях
Хранилище данных о заказах
Программная работа с базой данных и миграциями
Удаление, создание и очистка базы данных
Инициализация базы данных
Создание выборочных данных
Загрузка выборочных данных
Настройка тестов
Создание проекта
Конфигурирование проекта
Создание класса TestHelpers
Добавление класса BaseTest
Добавление вспомогательных методов для выполнения тестов в транзакциях
Добавление класса тестовой оснастки EnsureAutoLotDatabase
Добавление классов интеграционных тестов
Тестовые методы [Fact] и [Theory]
Выполнение тестов
Запрашивание базы данных
Состояние сущности