MigrateDatabaseToLatestVersion нет запущенного метода Seed ()

Я пытаюсь автоматически сгенерировать свою базу данных, если она не существует, и запуститьSeed() метод для заполнения данных. В моем конструкторе контекста базы данных у меня есть это:

Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyDBContext, Configuration>());

Это прекрасно работает, моя база данных автоматически создается со всеми таблицами, как я хочу, но похоже,Seed() метод не вызывается, моя база данных пуста. Это мой класс:

internal sealed class Configuration : DbMigrationsConfiguration<Context.MyDBContext>
{

    public Configuration()
    {
        AutomaticMigrationsEnabled = true;
    }

    protected override void Seed(Context.MyDBContext context)
    {
        context.Users.AddOrUpdate(
            new Entities.User() { Email = "[email protected]", Password = "", Language = "en", CreatedDate = DateTime.Now }
        );

        base.Seed(context);
    }
}

Когда я бегуUpdate-Database вNuget консоль данные заполняются после создания базы данных, но сMigrateDatabaseToLatestVersion Seed() метод не вызывается.

Что может происходить? Я попытался запустить миграцию вручную, как взято изВот:

var configuration = new MyDbContextConfiguration();
configuration.TargetDatabase = new DbConnectionInfo(
    database.ConnectionString, database.ProviderName);

var migrator = new DbMigrator(configuration);
migrator.Update();

Но тоже не работает.

РЕДАКТИРОВАТЬ:

Хорошо, после еще нескольких испытаний я обнаружил, чтоSeed() метод выполняется, но только когда база данных уже существует, то есть при первом запуске, когда база данных создается впервыеSeed() метод не выполняется, но при запуске приложения во второй разSeed() получить выполнено. Я также должен был добавитьcontext.SaveChanges() для того, чтобы это работало (спасибо @DavidG в комментариях):

protected override void Seed(Context.MyDBContext context)
    {
        context.Users.AddOrUpdate(
            new Entities.User() { Email = "[email protected]", Password = "", Language = "en", CreatedDate = DateTime.Now }
        );

        context.SaveChanges();
        base.Seed(context);
    }

Так что, возможно, я могу позвонить вручнуюSeed() внутриConfiguration() и сделайте некоторую проверку, чтобы избежать добавления дублирующих данных или изменения данных, которые уже существуют.

Ответы на вопрос(1)

Ваш ответ на вопрос