Ошибки компиляции 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?