Я сделал несколько простых изменений в нашем приложении, которое использует 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.