代码首次迁移在应用程序代码中执行

时间:2012-05-23 19:25:31

标签: entity-framework code-first

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

0 个答案:

没有答案