Du opretter en brugerdefineret databaseinitialiserer og overskriver Seed
metode
public class MyContextInitializer
: DropCreateDatabaseIfModelChanges<MyContext>
{
protected override void Seed(MyContext context)
{
context.ContactTypes.Add(new ContactType { DisplayName = "Home" });
context.ContactTypes.Add(new ContactType { DisplayName = "Mobile" });
context.ContactTypes.Add(new ContactType { DisplayName = "Office" });
context.ContactTypes.Add(new ContactType { DisplayName = "Fax" });
//EF will call SaveChanges itself
}
}
Derefter registrerer du denne initialisering for din afledte kontekst MyContext
:
Database.SetInitializer<MyContext>(new MyContextInitializer());
Dette er en statisk metode til Database
klasse og skal kaldes et sted én gang ved opstart af applikationen. Du kan også sætte den ind i en statisk konstruktør af din kontekst for at sikre, at initialiseringen er indstillet, før du opretter den første kontekstforekomst:
static MyContext()
{
Database.SetInitializer<MyContext>(new MyContextInitializer());
}
I stedet for basisinitialisatoren DropCreateDatabaseIfModelChanges<T>
du kan også udlede fra DropCreateDatabaseAlways<T>
eller CreateDatabaseIfNotExists<T>
hvis det bedre opfylder dine behov.