Metoda Seed w Entity Framework ASP.NET MVC

Seed - metoda inicjalizująca źródło (bazę) danych wartościami początkowymi.


Seed jest to metoda uruchamiana po każdej migracji bazy danych lub przy pierwszym uruchomieniu aplikacji. Dzięki takiemu rozwiązaniu po aktualizacji i usunięciu danych z bazy danych zostają wprowadzone dane startowe, przez co baza nie jest całkowicie pusta. Od pierwszego uruchomienia możemy testować funkcjonalność naszej aplikacji bez konieczności ręcznego dodawania danych. Gdy zostaną prowadzone zmiany w strukturze bazy danych wystarczy zaktualizować te części metody, które odnoszą sie do zaktualizowanej części.

Przykładowa metoda seed:

internal sealed class Configuration : DbMigrationsConfiguration<DataRepo.FullContext>
{
	public Configuration()
	{
		AutomaticMigrationsEnabled = true;
		AutomaticMigrationDataLossAllowed = true;
	}
 
	protected override void Seed(DataRepo.FullContext context)
	{
		SeedKursy(context);
	}
 
	private void SeedKursy(FullContext context)
	{
		for (int i = 0; i < 10; i++)
		{
			var kursik = new Kurs
			{
				Skad = "Rzeszow" + i.ToString(),
				Dokad = "Krakow" + i.ToString(),
				DataDodania = System.DateTime.Now,
				DataWyjazdu = System.DateTime.Now,
				Typ = true,
				Id = 1 + i
			};
 
			context.Kursy.Add(kursik);
		}
		context.SaveChanges();
	}
}
Metoda seed znajduje się w klasie konfiguracyjnej migracji. Jako parametr przekazujemy context, na którym ma operować metoda. W naszym przypadku zostały uruchomione automatyczne migracje, co oznacza, że po każdej aktualizacji w klasie z modelem zostaną uruchomione migracje i metoda seed. Zezwalamy również na migracje stratne, wymagające usunięcia wcześniejszych danych.
Komentarze facebook (polub nasz profil na FB aby je zobaczyć):