EF-миграции игнорируют изменения данных - PullRequest
0 голосов
/ 21 марта 2019

У меня начальная миграция БД.Теперь мне нужно создать первую пошаговую миграцию.Когда я создаю первую инкрементную миграцию с

add-migration Incremental1

, она содержит не только изменения таблицы, но также и все данные.Например, для строк, которые были добавлены в таблицу между ними, она содержит команды DeleteData:

migrationBuilder.DeleteData(
            table: "SystemResources",
            keyColumn: "Id",
            keyValue: 1);

Есть ли некоторые параметры для генерации только изменений таблицы (добавленные / удаленные столбцы) и игнорирования всех изменений данных (вставленныестроки данных)?

1 Ответ

0 голосов
/ 21 марта 2019

Решение состоит в том, чтобы:

  1. отключить заполнение данных, закомментировав все операторы modelBuilder.Entity<T>().HasData,
  2. создать пошаговую миграцию с помощью add-migration,
  3. вручную удалить все команды DeleteData / InsertData из пошаговой миграции,
  4. выполнить update-database.

После этого начальные данные больше не являются частью модели.моментальный снимок (<Database>ModelSnapshot.cs файл) и, следовательно, больше не отслеживается миграциями.

Это также означает, что следующая инкрементная миграция не будет содержать никаких операторов DeleteData / InsertData.

...