Web API 2 - 如何重新启动应用程序启动的环境

时间:2017-03-16 18:08:18

标签: asp.net-web-api2 ef-migrations

我正在通过弹性beanstalk发布将我的web api项目推送到AWS。我想将它用于演示环境。

目前,我已将其设置为两个单独的部署:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{

    public ApplicationDbContext()
    : base(Helpers.GetRDSConnectionString(), throwIfV1Schema: false)
    {
        // THIS DEPLOY IS USED TO DELETE THE CURRENT DATABASE
        //SqlConnection.ClearAllPools();
        //Database.SetInitializer<ApplicationDbContext>(new 
        DropCreateDatabaseAlways<ApplicationDbContext>());

        // THIS DEPLOY IS USED TO SEED THE DATABASE
        System.Data.Entity.Database.SetInitializer(new 
        MigrateDatabaseToLatestVersion<ApplicationDbContext, Configuration>());
     }

但是,只要应用程序池再次唤醒,数据库就会尝试播种。这是在app.start中的某个地方我可以放置这个逻辑,以便它只在最初部署应用程序时尝试重新创建数据库。

1 个答案:

答案 0 :(得分:1)

是的,您可以使用在应用程序生命周期内只调用一次的Application_Start

示例

protected void Application_Start()
{
    Database.SetInitializer<SomeContext>(new DropCreateDatabaseIfModelChanges());
}

DropCreateDatabaseIfModelChanges