Я пытаюсь заполнить базу данных некоторыми данными, используя ASP. NET CORE 3.0 и EF Core.
Я создал свой DbContext и в соответствии с документацией , онлайн-источники или даже EF Core 2.1 вопросы (я не смог найти каких-либо серьезных изменений в этой топи c).
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Band>().HasData(
new Band()
{
Id = Guid.Parse("e96bf6d6-3c62-41a9-8ecf-1bd23af931c9"),
Name = "SomeName",
CreatedOn = new DateTime(1980, 2, 13),
Description = "SomeDescription"
});
base.OnModelCreating(modelBuilder);
}
Это не делает то, что я ожидаю: при запуске приложения ничего не отображается (даже если во время отладки метод вызывается откуда-то).
Однако, если я добавлю миграцию , миграция содержит соответствующий оператор вставки (это не тот тип заполнения, который я ищу).
Вопрос: Как правильно выполнить начальное выполнение базы данных? при запуске приложения?
Под заполнением базы данных я подразумеваю, что я ожидаю, что некоторые данные будут обеспечиваться в некоторых таблицах при каждом запуске приложения.
У меня есть альтернатива для создания заполнить класс и обработать его после Database.Migrate с пользовательским кодом, но это выглядит как обходной путь, потому что в документации указано, что OnModelCreating должен использоваться для заполнения данных).
Итак, насколько я понимаю после прочтения ответы и перечитывание документации, что они подразумевают под «семенем», является «инициализацией», которая может произойти сразу после к модели данных (вот почему это было странно - смешивать создание модели с частью заполнения данных).