Vytvoříte vlastní inicializátor databáze a přepíšete Seed
metoda
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
}
}
Poté zaregistrujete tento inicializátor pro váš odvozený kontext MyContext
:
Database.SetInitializer<MyContext>(new MyContextInitializer());
Toto je statická metoda Database
třídy a měl by být někde volán jednou při spuštění aplikace. Můžete jej také vložit do statického konstruktoru vašeho kontextu, abyste se ujistili, že je inicializátor nastaven před vytvořením první instance kontextu:
static MyContext()
{
Database.SetInitializer<MyContext>(new MyContextInitializer());
}
Místo základního inicializátoru DropCreateDatabaseIfModelChanges<T>
můžete také odvodit z DropCreateDatabaseAlways<T>
nebo CreateDatabaseIfNotExists<T>
pokud to lépe vyhovuje vašim potřebám.