Du skapar en anpassad databasinitierare och skriver över Seed metod
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
}
}
Sedan registrerar du denna initialiserare för din härledda kontext MyContext :
Database.SetInitializer<MyContext>(new MyContextInitializer());
Detta är en statisk metod för Database klass och bör anropas någonstans en gång vid applikationsstart. Du kan också lägga in den i en statisk konstruktor av din kontext för att se till att initialiseringen är inställd innan du skapar den första kontextinstansen:
static MyContext()
{
Database.SetInitializer<MyContext>(new MyContextInitializer());
}
Istället för basinitialisatorn DropCreateDatabaseIfModelChanges<T> du kan också härleda från DropCreateDatabaseAlways<T> eller CreateDatabaseIfNotExists<T> om det bättre motsvarar dina behov.