我想在应用程序启动时执行我的类(从DbMigration扩展)。
目前我在启动时有以下代码:
Database.SetInitializer( new MigrateDatabaseToLatestVersion()); Database.Initialize(假);
这样可以正常工作并调用我的配置,即创建与数据库的连接。唯一的问题是我不知道我的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");
}
}