EF Core Migration Add - создает миграцию с неожиданными операторами DropForeignKey, DropUniqueConstraint, DropColumn - PullRequest
0 голосов
/ 17 декабря 2018

Я сделал несколько простых изменений в нашем приложении, которое использует EF Core.Я только что изменил точность нескольких десятичных столбцов и все.Когда я попытался создать новую миграцию с помощью команды dotnet ef migrations add ..., я вижу инструкции по миграции, которые я ожидаю увидеть:

        migrationBuilder.AlterColumn<decimal>(
            name: "Value_Amount",
            schema: "Payment",
            table: "Withdrawals",
            type: "DECIMAL(18, 5)",
            nullable: false,
            oldClrType: typeof(decimal),
            oldType: "DECIMAL(15, 2)");

Все выглядит хорошо, кроме того, что он показывает тонны странных DropForeignKey, DropUniqueConstraint, DropColumn заявления.Я просмотрел довольно много из них, и ни один из столбцов, на которые ссылаются операторы DropX, даже не существует в базе данных или классах моделей.Имена столбцов в этих DropX операторах часто заканчиваются на X_TempId, X_TempId1 и т. Д.

Я попросил моего коллегу оформить (используя git) ту же ветку, что и у меня, и запустить точнуюте же команды (с использованием точно таких же dotnet версий), но его миграция не показывает каких-либо странных операторов DropXYZ.Пожалуйста, исправьте меня, если я ошибаюсь, но я считаю, что команда dotnet ef migrations add ... сравнивает текущее состояние из SomethingModelSnapshot с последним состоянием в классах модели и создает изменения БД, чтобы перейти от текущего состояния к последнему.Если это так, то выполнение команды dotnet ef migrations add ... на одном и том же наборе файлов должно всегда давать одинаковые результаты, не так ли?

Есть идеи о том, что может происходить и / или как это исправить?

Некоторые версии:

dotnet --version = 2.2.100
dotnet ef --version = 2.2.0-rtm-35687
<TargetFramework>netcoreapp2.1</TargetFramework>
Windows 10, commands executed via Powershell.

Ответы [ 2 ]

0 голосов
/ 23 января 2019

После некоторого расследования кажется, что это ошибка в EF Core.Вы можете отслеживать это здесь на их github .

Это произошло после обновления с 2.1 до 2.2.Но обратите внимание, что это не просто ошибка EF Core 2.2, так как воссоздание новой миграции с нуля прекрасно работает на 2.2, но это скорее серьезное изменение интерпретации снимка модели.

0 голосов
/ 09 января 2019

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

...