Я создаю веб-приложение, используя ASP.Net Core 2.1 MVC. Чтобы добавить исходные данные в некоторые таблицы (например, для категорий), я написал метод Seed, успешно добавил миграцию и обновил базу данных (без ошибок). Данные (со всеми добавленными значениями) были замечены в базе данных (SQL Server) после запуска приложения. Затем я добавил некоторые другие категории в метод семени. На этот раз я не увидел изменений (обновлений) в SQL-сервере после запуска приложения и обновления базы данных с помощью миграции.
Seed работает только в первый раз, или я могу каким-то образом обновить (увеличить исходные данные) базу данных, используя Seed?
Это мой метод семян:
public static void Seed(OfferDbContext offerDbContext)
{
if (!offerDbContext.Categories.Any())
{
Category avto = new Category()
{
Name = "Avto"
};
Category home = new Category()
{
Name = "Ev"
};
Category digital = new Category()
{
Name = "Digital"
};
Category household = new Category()
{
Name = "Məişət"
};
Category entertainment = new Category()
{
Name = "Əyləncə"
};
Category furniture = new Category()
{
Name = "Mebel"
};
Category clothes = new Category()
{
Name = "Geyim"
};
Category cafe = new Category()
{
Name = "Kafe"
};
Category food = new Category()
{
Name = "Qida"
};
Category edu = new Category()
{
Name = "Təhsil"
};
Category medical = new Category()
{
Name = "Tibb"
};
Category tourism = new Category()
{
Name = "turizm"
};
offerDbContext.Categories.AddRange(avto, home, digital, household, entertainment, furniture, clothes, cafe, food, edu, medical, tourism);
offerDbContext.SaveChanges();
}
}
И метод Main в Program.cs, где я называю это Seed:
public static void Main(string[] args)
{
IWebHost webHost = CreateWebHostBuilder(args).Build();
using (IServiceScope serviceScope = webHost.Services.CreateScope())
{
using(OfferDbContext offerDbContext = serviceScope.ServiceProvider.GetRequiredService<OfferDbContext>())
{
OfferDb.Seed(offerDbContext);
}
}
webHost.Run();
}