我想在应用程序启动时执行我的类(从 DbMigration 扩展)。
目前我在启动中有以下代码:
Database.SetInitializer(new MigrateDatabaseToLatestVersion()); 数据库.初始化(假);
这工作正常,并调用我正在创建与数据库的连接的配置。唯一我不知道的是我的 DbMigration 类是如何执行的,以便在服务器上执行数据库更改。
这段代码执行没有任何问题:
public class Configuration : DbMigrationsConfiguration<CustomerDbContext>
{
public Configuration()
{
PgSqlConnectionInfo connectionInfo =
PgSqlConnectionInfo.CreateConnection(
"User Id=postgres;Password=postgres;Host=localhost;Port=5432;Database=etera;Schema=dev;");
TargetDatabase = connectionInfo;
SetSqlGenerator(connectionInfo.GetInvariantName(), new PgSqlEntityMigrationSqlGenerator());
}
}
它不执行以下代码 - 它应该创建表:
public class CreateBlogTable : DbMigration
{
public override void Up()
{
CreateTable(
"Blogs",
c => new
{
BlogId = c.Int(nullable: false, identity: true),
Name = c.String(unicode: false),
})
.PrimaryKey(t => t.BlogId);
}
public override void Down()
{
DropTable("Blogs");
}
}