Entity Framework
Database-initializers
Zoeken…
CreateDatabaseIfNotExists
Implementatie van IDatabaseInitializer
die standaard wordt gebruikt in EntityFramework. Zoals de naam al aangeeft, wordt de database gemaakt als er geen bestaat. Wanneer u het model echter wijzigt, vormt dit een uitzondering.
Gebruik:
public class MyContext : DbContext {
public MyContext() {
Database.SetInitializer(new CreateDatabaseIfNotExists<MyContext>());
}
}
DropCreateDatabaseIfModelChanges
Deze implementatie van IDatabaseInitializer
laat de database vallen en maakt deze opnieuw aan als het model automatisch verandert.
Gebruik:
public class MyContext : DbContext {
public MyContext() {
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<MyContext>());
}
}
DropCreateDatabaseAlways
Deze implementatie van IDatabaseInitializer
en maakt de database opnieuw telkens wanneer uw context wordt gebruikt in het app-domein van de applicatie. Pas op voor het gegevensverlies vanwege het feit dat de database opnieuw is gemaakt.
Gebruik:
public class MyContext : DbContext {
public MyContext() {
Database.SetInitializer(new DropCreateDatabaseAlways<MyContext>());
}
}
Aangepaste database-initialisatie
U kunt uw eigen implementatie van IDatabaseInitializer
.
Voorbeeldimplementatie van een initialisatieprogramma, dat de database naar 0 migreert en vervolgens helemaal naar de nieuwste migratie migreert (handig bijvoorbeeld bij het uitvoeren van integratietests). Om dat te doen, hebt u ook een type DbMigrationsConfiguration
nodig.
public class RecreateFromScratch<TContext, TMigrationsConfiguration> :
IDatabaseInitializer<TContext>
where TContext : DbContext
where TMigrationsConfiguration : DbMigrationsConfiguration<TContext>, new()
{
private readonly DbMigrationsConfiguration<TContext> _configuration;
public RecreateFromScratch()
{
_configuration = new TMigrationsConfiguration();
}
public void InitializeDatabase(TContext context)
{
var migrator = new DbMigrator(_configuration);
migrator.Update("0");
migrator.Update();
}
}
MigrateDatabaseToLatestVersion
Een implementatie van IDatabaseInitializer
die Code First Migrations zal gebruiken om de database bij te werken naar de nieuwste versie. Om deze initialisatie te gebruiken, moet u DbMigrationsConfiguration
type DbMigrationsConfiguration
gebruiken.
Gebruik:
public class MyContext : DbContext {
public MyContext() {
Database.SetInitializer(
new MigrateDatabaseToLatestVersion<MyContext, Configuration>());
}
}