Entity framework 在应用程序代码中执行代码优先迁移

Entity framework 在应用程序代码中执行代码优先迁移,entity-framework,code-first,Entity Framework,Code First,我想在应用程序启动时执行我的类(从DbMigration扩展而来) 目前,我在启动中有以下代码: Database.SetInitializer( 新的MigrateDatabaseToLatestVersion()); 数据库初始化(false) 这工作正常,并调用正在创建到数据库连接的配置。唯一的问题是我不知道如何执行我的DbMigration类,以便在服务器上执行数据库更改 执行此代码时没有任何问题: public class Configuration : DbMigrationsCon

我想在应用程序启动时执行我的类(从DbMigration扩展而来)

目前,我在启动中有以下代码:

Database.SetInitializer( 新的MigrateDatabaseToLatestVersion()); 数据库初始化(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());
        }

    }

您是使用addmigration命令创建新迁移还是刚刚创建了一个类?我刚刚创建了这个类。手动创建命令时,该命令执行的其他步骤有哪些?它使用序列化模型创建其他自动生成的文件。您的问题的答案是:使用Add-Migration。听起来像是解决方案。如果你加上它作为答案,我会接受的。
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");
        }
    }