0

我想在应用程序启动时执行我的类(从 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");
        }
    }
4

0 回答 0