Удаление EF Core Migration удаляет столбцы, с которыми миграция не имеет ничего общего - PullRequest
1 голос
/ 16 апреля 2019

У меня есть класс, который включает 2 свойства: Value и Description. Эти 2 свойства были добавлены в класс пару миграций назад, и никогда не возникало проблем.

Сегодня, работая над веткой, я заметил, что, когда я добавил новую миграцию, она была добавлена, чтобы снова добавить столбцы, поэтому я начал проводить некоторое тестирование.

Начиная с текущей базовой линии, без изменения сущности, если я добавлю миграцию под названием «Тест», я получу это:

using Microsoft.EntityFrameworkCore.Migrations;

namespace AgWare.Data.Migrations
{
    public partial class Test : Migration
    {
        protected override void Up(MigrationBuilder migrationBuilder)
        {

        }

        protected override void Down(MigrationBuilder migrationBuilder)
        {

        }
    }
}

Что верно, я не внес никаких изменений в свои Модели. Git показывает только новые файлы миграции и его файлы Designer.cs как добавленные, без изменений в снимке. Теперь, если я запускаю команду «Удалить миграцию», тестовая миграция удаляется, но Git неожиданно сообщает, что мой снимок изменился, и из записи modelBulder для вышеупомянутого класса были удалены следующие строки:

b.Property<decimal?>("Value")
    .HasColumnType("Money");

b.Property<string>("Description")
    .HasMaxLength(75);

Таким образом, удаление Миграции, которая не имеет ничего общего с этими свойствами, каким-то образом приводит к обновлению Снимка, чтобы отразить, что они были удалены по какой-то причине. Это означает, что когда я добавляю еще одну миграцию, она генерирует код для повторного создания этих столбцов, который не будет работать, поскольку они уже существуют. Что может быть причиной этого? Я хочу выяснить это сейчас, чтобы это не стало повторением для всех будущих миграций.

...