Buscar..


CreateDatabaseIfNotExists

Implementación de IDatabaseInitializer que se utiliza en EntityFramework de forma predeterminada. Como su nombre lo indica, crea la base de datos si no existe. Sin embargo, cuando se cambia el modelo, se produce una excepción.

Uso:

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

DropCreateDatabaseIfModelChanges

Esta implementación de IDatabaseInitializer elimina y IDatabaseInitializer crear la base de datos si el modelo cambia automáticamente.

Uso:

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

DropCreateDatabaseSiempre

Esta implementación de IDatabaseInitializer elimina y recrea la base de datos cada vez que se usa su contexto en el dominio de aplicación de aplicaciones. Tenga cuidado con la pérdida de datos debido al hecho de que la base de datos se vuelve a crear.

Uso:

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

Inicializador de base de datos personalizado

Puede crear su propia implementación de IDatabaseInitializer .

Ejemplo de implementación de un inicializador, que migrará la base de datos a 0 y luego migrará hasta la migración más reciente (útil, por ejemplo, cuando se ejecutan pruebas de integración). Para hacer eso necesitarías un tipo DbMigrationsConfiguration también.

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

Una implementación de IDatabaseInitializer que utilizará las migraciones de Code First para actualizar la base de datos a la última versión. Para usar este inicializador tienes que usar 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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow