Izibook.club
Читать онлайн книги!
  • Главная
  • Жанры
  • Авторы
  • ТОП книг
  • ТОП авторов
  • Контакты

Язык программирования C#9 и платформа .NET5

Часть 430 из 642 Информация о книге

<b>[DbContext(typeof(ApplicationDbContext))]</b>

<b>[Migration(&quot;20201230020509_One2Many&quot;)]</b>

partial class One2Many

{

  protected override void BuildTargetModel(ModelBuilder modelBuilder)

  {

    ...

  }

}

Первая миграция создает внутри целевого каталога дополнительный файл, именуемый в соответствии с производным от

DbContext
классом, т.е.
&lt;ИмяПроизводногоОтDbContextКласса&gt;ModelSnapshot.cs
. Этот файл имеет формат, совпадающий с форматом конструирующего файла, и содержит код, который представляет собой итог всех миграций. При добавлении или удалении миграций данный файл автоматически обновляется, чтобы соответствовать изменениям.

На заметку! Крайне важно не удалять файлы миграций вручную. Удаление приведет к тому, что файл

&lt;ИмяПpoизвoднoгoOтDbContextKлacca&gt;ModelSnapshot.cs
утратит синхронизацию с вашими миграциями, по существу нарушив их работу. Если вы собираетесь удалять файлы миграций вручную, тогда удалите их все и начните сначала. Для удаления миграции используйте команду remove, которая будет описана ниже.

Исключение таблиц из миграций

Если какая-то сущность задействована сразу в нескольких

DbContext
, то каждый
DbContext
будет создавать код в файлах миграций для любых изменений, вносимых в эту сущность. В результате возникает проблема, потому что второй сценарий миграции потерпит неудачу, если изменения уже внесены в базу данных. До выхода версии EF Core 5 единственным решением было ручное редактирование одного из файлов миграций с целью удаления таких изменений.

В версии EF Core 5 производный от

DbContext
класс может помечать сущность как исключенную из миграций, позволяя другому
DbContext
становиться системой записи для данной сущности. В следующем коде сущность исключается из миграций:

protected override void OnModelCreating(ModelBuilder modelBuilder)

{

  modelBuilder.Entity&lt;LogEntry&gt;().ToTable(&quot;Logs&quot;,

    t =&gt; t.ExcludeFromMigrations());

}

Команда remove

Команда

remove
применяется для удаления миграций из проекта и всегда работает с последней миграцией (основываясь на отметках времени миграций). При удалении миграции исполняющая среда EF Core проверяет, не была ли миграция применена к базе данных, с помощью таблицы
__EFMigrationsHistory
. Если миграция применялась, тогда процесс терпит неудачу. Если же миграция не применялась или была подвергнута откату, то она удаляется, а файл моментального снимка модели обновляется.

Команда

remove
не принимает какие-либо параметры (поскольку всегда работает с последней миграцией) и использует те же самые параметры, что и команда
add
, плюс дополнительный параметр
force(—f || --force)
, который обеспечивает выполнение отката последней миграции и ее удаление за один шаг.

Команда list

Команда

list
позволяет получить все миграции для класса, производного от
DbContext
. По умолчанию она выводит список всех миграций и запрашивает базу данных с целью выяснения, были ли они применены. Если миграции не применялись, то они будут помечены как ожидающие. Один из параметров команды
list
предназначен для передачи специальной строки подключения, а другой позволяет вообще не подключаться к базе данных и просто вывести список миграций (табл. 22.12).

Язык программирования C#9 и платформа .NET5 - _168.png

Команда script

Команда

script
создает сценарий SQL на основе одной или большего количества миграций и принимает два необязательных параметра, которые указывают, с какой миграции начинать и на какой миграции заканчивать. Если ни один параметр не задан, то сценарий создается для всех миграций. Параметры описаны в табл. 22.13.

Язык программирования C#9 и платформа .NET5 - _169.png

Если миграции не указаны, тогда созданный сценарий станет совокупным итогом всех миграций. В случае предоставления миграций сценарий будет содержать изменения между двумя миграциями (включительно). Каждая миграция помещается внутрь транзакции. Если в базе данных, где запускается команда

script
, таблица
__EFMigrationsHistory
нe существует, то она создается. Кроме того, она будет обновляться для соответствия выполненным миграциям. Вот несколько примеров:

// Создать сценарий для всех миграций.

dotnet ef migrations script

// Создать сценарий для миграций от начальной до Мапу2Мапу включительно.

dotnet ef migrations script 0 Many2Many

В табл. 22.14 представлены дополнительные параметры. Параметр

-о
позволяет указать файл для сценария (в каталоге, относительном к тому, где запускается команда), а параметр
-i
создает идемпотентный сценарий (который содержит проверку, применялась ли уже миграция, и если применялась, то пропускает ее). Параметр
--no-transaction
отключает добавление транзакций в сценарий.

Язык программирования C#9 и платформа .NET5 - _170.png

Команды для управления базой данных

Для управления базой данных предназначены две команды,

drop
и
update
. Команда
drop
удаляет базу данных, если она существует, а команда
update
обновляет базу данных с использованием миграций.

Команда drop

Команда

drop
удаляет базу данных, указанную в строке подключения внутри метода
OnConfiguring()
производного от
DbContext
класса. С помощью параметра
force
можно отключить запрос на подтверждение и принудительно закрыть все подключения (табл. 22.15).

Перейти к странице:
Предыдущая страница
Следующая страница
Жанры
  • Военное дело 4
    • Спецслужбы 4
  • Деловая литература 204
    • Банковское дело 3
    • Деловая литература 2
    • Корпоративная культура 13
    • Личные финансы 21
    • Малый бизнес 2
    • Маркетинг, PR, реклама 46
    • О бизнесе популярно 112
    • Отраслевые издания 2
    • Управление, подбор персонала 17
    • Ценные бумаги, инвестиции 3
    • Экономика 28
  • Детективы и триллеры 2776
    • Боевики 314
    • Дамский детективный роман 21
    • Детективы 424
    • Иронические детективы 182
    • Исторические детективы 416
    • Классические детективы 224
    • Криминальные детективы 156
    • Крутой детектив 119
    • Маньяки 15
    • Медицинский триллер 2
    • Политические детективы 44
    • Полицейские детективы 235
    • Прочие Детективы 820
    • Техно триллер 3
    • Триллеры 1208
    • Шпионские детективы 101
  • Детские 497
    • Детская образовательная литература 13
    • Детская проза 165
    • Детские остросюжетные 53
    • Детские приключения 263
    • Детские стихи 21
    • Детский фольклор 1
    • Книга-игра 1
    • Прочая детская литература 77
  • Детские книги 534
    • Детская фантастика 197
    • Детские детективы 3
    • Книги для подростков 23
    • Сказки 267
  • Документальная литература 810
    • Биографии и мемуары 531
    • Военная документалистика 7
    • Искусство и Дизайн 15
    • Критика 11
    • Научпоп 9
    • Прочая документальная литература 73
    • Публицистика 257
  • Дом и Семья 216
    • Домашние животные 14
    • Здоровье и красота 34
    • Кулинария 33
    • Прочее домоводство 8
    • Развлечения 3
    • Сад и Огород 8
    • Сделай сам 2
    • Спорт 10
    • Хобби и ремесла 7
    • Эротика и секс 111
  • Драматургия 109
    • Драма 106
    • Киносценарии 3
    • Мистерия 1
    • Трагедия 1
  • Жанр не определен 8
    • Разное 8
  • Компьютеры и Интернет 15
    • Базы данных 3
    • Интернет 3
    • Программирование 1
    • Программное обеспечение 1
    • Прочая компьютерная литература 10
  • Любовные романы 26650
    • Исторические любовные романы 956
    • Короткие любовные романы 2685
    • Любовно-фантастические романы 11062
    • Остросюжетные любовные романы 991
    • Порно 90
    • Прочие любовные романы 57
    • Слеш 417
    • Современные любовные романы 11003
    • Фемслеш 44
    • Эротика 6572
  • Научно-образовательная 375
    • Альтернативная медицина 5
    • Астрономия и Космос 7
    • Биология 32
    • Биофизика 2
    • Биохимия 2
    • Ботаника 3
    • Военная история 4
    • Геология и география 3
    • Государство и право 1
    • Детская психология 16
    • Зоология 3
    • Иностранные языки 2
    • Культурология 46
    • Литературоведение 20
    • Медицина 35
    • Обществознание 7
    • Педагогика 20
    • Политика 22
    • Прочая научная литература 58
    • Психотерапия и консультирование 51
    • Религиоведение 7
    • Секс и семейная психология 31
    • Технические науки 4
    • Физика 9
    • Философия 34
    • Химия 3
    • Экология 3
    • Юриспруденция 9
    • Языкознание 18
  • Образование 525
    • Бизнес 45
    • Биография и мемуары 46
    • Здоровье 10
    • История 298
    • Карьера 4
    • Психология 231
  • Поэзия и драматургия 43
    • Басни 2
    • Драматургия 11
    • Лирика 2
    • Поэзия 31
  • Приключения 765
    • Вестерны 14
    • Исторические приключения 422
    • Морские приключения 80
    • Природа и животные 31
    • Прочие приключения 212
    • Путешествия и география 52
  • Проза 2431
    • Антисоветская литература 5
    • Афоризмы 1
    • Военная проза 111
    • Историческая проза 321
    • Классическая проза 135
    • Контркультура 14
    • Магический реализм 95
    • Новелла 14
    • Повесть 24
    • Проза прочее 21
    • Рассказ 73
    • Роман 103
    • Русская классическая проза 73
    • Семейный роман/Семейная сага 3
    • Сентиментальная проза 10
    • Советская классическая проза 47
    • Современная проза 1869
    • Эпистолярная проза 2
    • Эпопея 5
    • Эссе, очерк, этюд, набросок 3
  • Прочее 1520
    • Газеты и журналы 5
    • Изобразительное искусство, фотография 12
    • Кино 13
    • Музыка 11
    • Подростковая литература 6
    • Театр 5
    • Фанфик 1473
  • Религия и духовность 365
    • Астрология 1
    • Буддизм 4
    • Православие 1
    • Прочая религиозная литература 4
    • Религия 24
    • Самосовершенствование 139
    • Хиромантия 1
    • Эзотерика 212
    • Язычество 1
  • Справочная литература 42
    • Прочая справочная литература 3
    • Путеводители 10
    • Руководства 12
    • Справочники 15
    • Энциклопедии 9
  • Старинная литература 154
    • Античная литература 1
    • Древневосточная литература 5
    • Мифы. Легенды. Эпос 34
    • Прочая старинная литература 115
  • Техника 2
    • Автомобили и ПДД 1
    • Архитектура 1
  • Фантастика и фентези 28707
    • Альтернативная история 4211
    • Боевая фантастика 5397
    • Героическая фантастика 1494
    • Городское фэнтези 2300
    • Готический роман 13
    • Детективная фантастика 754
    • Ироническая фантастика 102
    • Ироническое фэнтези 83
    • Историческое фэнтези 532
    • Киберпанк 320
    • Космическая фантастика 1825
    • Космоопера 56
    • ЛитРПГ 1334
    • Любовная фантастика 186
    • Любовное фэнтези 115
    • Мистика 522
    • Научная фантастика 935
    • Попаданцы 9530
    • Постапокалипсис 920
    • Сказочная фантастика 26
    • Социально-философская фантастика 548
    • Стимпанк 151
    • Технофэнтези 144
    • Ужасы 103
    • Ужасы и мистика 826
    • Фантастика 254
    • Фантастика: прочее 232
    • Фэнтези 11582
    • Эпическая фантастика 236
    • Юмористическая фантастика 1076
    • Юмористическое фэнтези 1683
  • Фольклор 7
    • Загадки 1
    • Народные сказки 5
    • Фольклор: прочее 2
  • Юмор 195
    • Анекдоты 1
    • Комедии 1
    • Прочий юмор 67
    • Сатира 3
    • Юмористическая проза 124
    • Юмористические стихи 5
Izibook.club

Бесплатная онлайн библиотека для чтения книг без регистрации с телефона или компьютера. У нас собраны последние новинки, мировые бестселлеры книжного мира.

Контакты
  • pereezdsayta@yandex.ru
Информация
  • Карта сайта
© izibook.club, 2026. | Вход
Этот сайт использует cookie для хранения данных. Продолжая пользоваться сайтом, вы даете свое согласие на работу с этими данными в соответствии с нашей политикой конфиденциальности.
Я согласен