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>());
    }
}


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow