自定義資料庫初始化器
你可以建立自己的 IDatabaseInitializer
實現。
初始化程式的示例實現,它將資料庫遷移到 0,然後一直遷移到最新的遷移(例如在執行整合測試時很有用)。為了做到這一點,你也需要一個 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();
}
}