Строковый аргумент'igrationId'не может быть пустым

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

Короче говоря, я не могу вносить какие-либо обновления в свою базу данных, используя сначала код в моем проекте ASP.NET Core 1.1.2. Это вызывает исключение, потому что в нем отсутствует аргумент, который, как я предполагаю, не связан с PMC.

Сообщение об ошибке при использовании "Update-Database":

Ошибка-Image-Update-Database

Текст для перекрестной проверки Google;-)

    System.ArgumentException: The string argument 'migrationId' cannot be empty.
   at Microsoft.EntityFrameworkCore.Utilities.Check.NotEmpty(String value, String parameterName)
   at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.GetAppliedMigrations()
   at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
   at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.<>c__DisplayClass0_1.<.ctor>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
The string argument 'migrationId' cannot be empty.

Папка Migrations идентична моей таблице _EFMigrationsHistory (без учета последней миграции, которая запланирована для обновления):

Я даже дошел до удаления папки "Миграции" и таблицы "_EFMigrationsHistory" и повторного запуска, которая вызвала ту же ошибку. Я также собирался протестировать "v2.0.0-preview2-final" на всякий случай, если это была ошибка, но, к сожалению, моя версия VS требует только сборки выпуска, и, очевидно, вам нужен 15.3.

Информация о версии:

  • Visual Studio Enterprise 2017 - выпуск 15.2 (26430.16)
  • Entity Framework Core v1.1.2
  • ASP.NET Core v1.1.2

Любые указатели будут высоко оценены.

редактировать

@DavidG

За dotnet ef database update

и для Update-Database -TargetMigration AdUserImage

1 ответ

Решение

Я наконец-то решил проблему благодаря @DavidG, который направил меня в правильном направлении, так что большое спасибо.

Я понял, что когда я проверял установленный SDK на моем ПК, я заметил, что я установил предварительную версию Dotnet 2.0.0 (я, честно говоря, не помню, как это делал). Проверка версии Dotnet (dotnet --version) из PMC подтвердил, что VS использует 2.0.0. После удаления всех Dotnet SDK и сред выполнения, а затем переустановки последней версии Dotnet(1.1.2) отсюда, Update-Database работал как надо... мало кто!

Другие вопросы по тегам