Crei un inizializzatore di database personalizzato e sovrascrivi il Seed
metodo
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
}
}
Quindi registri questo inizializzatore per il tuo contesto derivato MyContext
:
Database.SetInitializer<MyContext>(new MyContextInitializer());
Questo è un metodo statico del Database
class e dovrebbe essere chiamato da qualche parte una volta all'avvio dell'applicazione. Puoi anche inserirlo in un costruttore statico del tuo contesto per assicurarti che l'inizializzatore sia impostato prima di creare la prima istanza di contesto:
static MyContext()
{
Database.SetInitializer<MyContext>(new MyContextInitializer());
}
Invece dell'inizializzatore di base DropCreateDatabaseIfModelChanges<T>
puoi anche derivare da DropCreateDatabaseAlways<T>
o CreateDatabaseIfNotExists<T>
se soddisfa meglio le tue esigenze.