Sök…


CreateDatabaseIfNotExists

Implementering av IDatabaseInitializer som används i EntityFramework som standard. Som namnet antyder skapar det databasen om ingen finns. Men när du byter modell, kastar det ett undantag.

Användande:

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

DropCreateDatabaseIfModelChanges

Denna implementering av IDatabaseInitializer tappar och återskapar databasen om modellen ändras automatiskt.

Användande:

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

DropCreateDatabaseAlways

Denna implementering av IDatabaseInitializer tappar och återskapar databasen varje gång ditt sammanhang används i applikations-appdomänen. Se upp för dataförlusten på grund av att databasen återskapas.

Användande:

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

Anpassad databasinitierare

Du kan skapa din egen implementering av IDatabaseInitializer .

Exempel på implementering av en initialisator, som kommer att migrera databasen till 0 och sedan migrera hela vägen till den senaste migreringen (användbar t.ex. när du kör integrationstester). För att göra det behöver du också en 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

En implementering av IDatabaseInitializer som kommer att använda Code First Migrations för att uppdatera databasen till den senaste versionen. För att använda den här initialiseraren måste du också använda DbMigrationsConfiguration typen.

Användande:

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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow