Създавате персонализиран инициализатор на база данни и презаписвате Seed
метод
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
}
}
След това регистрирате този инициализатор за вашия извлечен контекст MyContext
:
Database.SetInitializer<MyContext>(new MyContextInitializer());
Това е статичен метод на Database
клас и трябва да бъде извикан някъде веднъж при стартиране на приложението. Можете също да го поставите в статичен конструктор на вашия контекст, за да сте сигурни, че инициализаторът е зададен, преди да създадете първия екземпляр на контекста:
static MyContext()
{
Database.SetInitializer<MyContext>(new MyContextInitializer());
}
Вместо базовия инициализатор DropCreateDatabaseIfModelChanges<T>
можете също да извлечете от DropCreateDatabaseAlways<T>
или CreateDatabaseIfNotExists<T>
ако това отговаря по-добре на нуждите ви.