アプリケーションの起動時に(DbMigrationから拡張された)クラスを実行したいと思います。
現在、スタートアップには次のコードがあります。
Database.SetInitializer(new MigrateDatabaseToLatestVersion()); Database.Initialize(false);
これは正常に機能しており、データベースへの接続を作成している構成を呼び出します。唯一のことは、データベースの変更がサーバー上で実行されるように、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");
}
}