содержат ссылку на сущность, которая инициировала событие, и указывают, было оно получено из запроса (загруженного из базы данных) или добавлено программно. Добавьте в класс
На этой стадии оба проекта компилируются и все готово к созданию еще одной миграции для обновления базы данных. Введите в каталоге проекта
AutoLot.Dal
следующие команды (каждая команда должна вводиться в одной строке):
dotnet ef migrations add UpdatedEntities -o EfStructures\Migrations
– c AutoLot.Dal.
EfStructures.ApplicationDbContext
dotnet ef database update UpdatedEntities
– c AutoLot.Dal.EfStructures.ApplicationDbContext
Добавление представления базы данных и хранимой процедуры
Осталось внести в базу данных два изменения: создать хранимую процедуру
GetPetName
, рассмотренную в главе 21, и добавить представление базы данных, которое объединяет таблицу
Orders
с деталями
Customer
,
Car
и
Make
.
Добавление класса MigrationHelpers
Хранимая процедура и представление будут создаваться с использованием миграции, которая требует написания кода вручную. Причина поступать так (вместо того, чтобы просто открыть Azure Data Studio и запустить код T-SQL) — желание поместить полное конфигурирование базы данных в один процесс. Когда все содержится в миграциях, единственный вызов
dotnet ef database update
гарантирует, что база данных является актуальной, включая конфигурацию EF Core и специальный код SQL.
Выполнение команды
the dotnet ef migrations add
при отсутствии изменений в модели все равно приводит к созданию файлов миграции, имеющих правильную отметку времени, с пустыми методами
Up
и
Down
. Введите показанную ниже команду для создания пустой миграции (но не применения миграции):
dotnet ef migrations add SQL -o EfStructures\Migrations
– c AutoLot.Dal.EfStructures.
ApplicationDbContext
Создайте в каталоге
EfStructures
проекта
AutoLot.Dal
новый файл по имени
MigrationHelpers.cs
. Добавьте оператор
using
для пространства имен
Microsoft.EntityFrameworkCore.Migrations
, сделайте класс открытым и статическим и поместите в него следующие методы, которые используют
MigrationBuilder
для запуска операторов SQL в отношении базы данных: