Вы можете зарегистрировать инициализатор в статическом конструкторе вашего контекста:
public class MyContext : DbContext
{
static MyContext()
{
Database.SetInitializer(new MyInitializer());
}
//...
}
Использование производного инициализатора, который также находится в вашей библиотеке реализации репозитория:
public class MyInitializer : DropCreateDatabaseIfModelChanges<MyContext>
{
protected override void Seed(MyContext context)
{
// ...
}
}
Статический конструктор будет выполняться при создании первого экземпляра контекста, а Seed
будет вызываться при запуске запроса, добавлении или присоединении объекта к контексту в первый раз и т. Д.