Ricerca…


CreateDatabaseIfNotExists

Implementazione di IDatabaseInitializer che viene utilizzato in EntityFramework per impostazione predefinita. Come suggerisce il nome, crea il database se non esiste. Tuttavia, quando si modifica il modello, viene generata un'eccezione.

Uso:

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

DropCreateDatabaseIfModelChanges

Questa implementazione di IDatabaseInitializer elimina e ricrea il database se il modello viene modificato automaticamente.

Uso:

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

DropCreateDatabaseAlways

Questa implementazione di IDatabaseInitializer elimina e ricrea il database ogni volta che viene utilizzato il contesto nel dominio dell'app delle applicazioni. Prestare attenzione alla perdita di dati dovuta al fatto che il database viene ricreato.

Uso:

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

Inizializzatore del database personalizzato

È possibile creare la propria implementazione di IDatabaseInitializer .

Esempio di implementazione di un inizializzatore, che migrerà il database a 0 e quindi migrerà fino alla migrazione più recente (utile ad esempio nell'esecuzione di test di integrazione). Per fare ciò è necessario anche un tipo DbMigrationsConfiguration .

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

Un'implementazione di IDatabaseInitializer che utilizzerà Code First Migrations per aggiornare il database alla versione più recente. Per usare questo inizializzatore devi usare DbMigrationsConfiguration tipo DbMigrationsConfiguration .

Uso:

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


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow