Изменение DeleteBehavior.Cascade на DeleteBehavior.Restrict заставляет EF Core удалять внешние ключи - PullRequest
1 голос
/ 06 июня 2019

ASP.NET Core 2.2 проект с Entity Framework Core; Я выполняю первую EF Migration для создания базы данных:

Вот мои шаги:

  1. Я запускаю Add-Migration myFirstMigration в консоли диспетчера пакетов
  2. Я вручную редактирую файлы миграции, а также DbContextModelSnapshot.cs, чтобы изменить все экземпляры с DeleteBehavior.Cascade на DeleteBehavior.Restrict, потому что я просто хочу, чтобы выдавалась ошибка, если строка удаляется / обновляется, что вызывает нарушение ограничения FK
  3. Я запускаю Update-Database, который создает базу данных в SQL Server

Вот часть, которая меня смущает: Если я теперь снова выполню Add-Migration, создается миграция, в которой он хочет отбросить ограничения внешнего ключа и повторно добавить их с помощью DeleteBehavior.Cascade.

Почему он это делает? Конечно, это связано с установкой всего на DeleteBehavior.Restrict, но почему?

...