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.