Suche…


CreateDatabaseIfNotExists

Implementierung von IDatabaseInitializer , die standardmäßig in EntityFramework verwendet wird. Wie der Name schon sagt, erstellt er die Datenbank, wenn keine vorhanden ist. Wenn Sie jedoch das Modell ändern, wird eine Ausnahme ausgelöst.

Verwendungszweck:

public class MyContext : DbContext {
    public MyContext() {
        Database.SetInitializer(new CreateDatabaseIfNotExists<MyContext>());
    }
}

DropCreateDatabaseIfModelChanges

Diese Implementierung von IDatabaseInitializer die Datenbank und erstellt sie neu, wenn das Modell automatisch geändert wird.

Verwendungszweck:

public class MyContext : DbContext {
    public MyContext() {
        Database.SetInitializer(new DropCreateDatabaseIfModelChanges<MyContext>());
    }
}

DropCreateDatabaseAlways

Bei dieser Implementierung von IDatabaseInitializer die Datenbank jedes Mal IDatabaseInitializer und neu erstellt, wenn Ihr Kontext in der Anwendungs-App-Domäne verwendet wird. Beachten Sie den Datenverlust aufgrund der Tatsache, dass die Datenbank neu erstellt wird.

Verwendungszweck:

public class MyContext : DbContext {
    public MyContext() {
        Database.SetInitializer(new DropCreateDatabaseAlways<MyContext>());
    }
}

Benutzerdefinierter Datenbankinitialisierer

Sie können Ihre eigene Implementierung von IDatabaseInitializer .

Beispielimplementierung eines Initialisierers, der die Datenbank auf 0 migriert und dann bis zur neuesten Migration (z. B. beim Ausführen von Integrationstests) vollständig migriert Dazu benötigen Sie auch einen DbMigrationsConfiguration Typ.

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

Eine Implementierung von IDatabaseInitializer , die Code First Migrations zum Aktualisieren der Datenbank auf die neueste Version verwendet. Um diesen Initialisierer verwenden zu können, müssen Sie auch den Typ DbMigrationsConfiguration verwenden.

Verwendungszweck:

public class MyContext : DbContext {
    public MyContext() {
        Database.SetInitializer(
            new MigrateDatabaseToLatestVersion<MyContext, Configuration>());
    }
}


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow