Ошибки компиляции Entity Framework Core при второй миграции

У меня есть DBContext (унаследованный от IdentityDbContext), содержащий таблицы удостоверений ASP.NET и некоторые пользовательские таблицы.

Я создал для него миграцию, которая работала нормально.

Теперь я добавил несколько наборов данных в DbContext и вызвал

dotnet ef migrations add SecondMigration ...

Это приводит к 2 ошибкам компилятора после создания миграции.

Duplicate 'DbContext' attribute

а также

Type 'IdDbContext' already defines a member called 'BuildModel' with the same paramter types.

Я не понимаю, почему это происходит потому, что я сделал то же самое в другом проекте (для другого dbcontext, не наследующего от identitydbcontext) два дня назад, и это сработало без проблем.

Эта штука сводит меня с ума уже сейчас...

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

1 ответ

И наконец я выяснил причину. К сожалению, не источник проблемы, но, по крайней мере, исправление, которое работает вручную.

Команда add migrations создает пространство имен для каждой миграции.

Итак, у меня есть... Миграции. Первая миграция и... Миграции. Вторая миграция

Во время создания второй миграции он создает файлы

  • Timestamp_SecondMigration.cs
  • Timestamp_SecondMigration.Designer.cs
  • IdDbContextModelSnapshot.cs

Первые два создаются в пространстве имен SecondMigration, но по какой-то причине он создает третий файл в пространстве имен FirstMigration. Это вызывает проблему.

Просто измените пространство имен с FirstMigration на SecondMigration, и ошибки компилятора исчезнут...

Надеюсь, что это не имеет каких-либо негативных побочных эффектов, которых я пока не знаю...


Если у вас 1 DbContext с 3 миграциями, должен ли быть 1 ModelSnapshot или 3 ModelSnapshots?