asp.net CORE Миграции генерируются пустыми

Я пытаюсь следовать руководству, чтобы добавить миграцию (вторую), сгенерированную из IdentityDbContext а также IdentityUser,
Когда я бегу dotnet ef migration add <NAME> это быть добавить, но UP а также DOWN пусты

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

WorldUser:

namespace TheWorld.Models
{
    public class WorldUser : IdentityUser
    {
        public DateTime FirstTrip { get; set; }
    }
}

WorldContext:

namespace TheWorld.Models
{
    public class WorldContext : IdentityDbContext<WorldUser>
    {
        private IConfigurationRoot _config;
        public WorldContext(IConfigurationRoot config,DbContextOptions options) : base(options)
        {
            _config = config;
        }
        ....

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

1 ответ

Решение

Ваша папка миграции должна содержать WorldContextModelSnapshot.csэтот файл содержит определение для всей базы данных. Если модель уже определена в этом файле, она больше не будет отображаться в новых миграциях.

Если вы хотите снова сгенерировать миграцию, удалите модель из этого файла и снова сгенерируйте миграцию.

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