如何在asp.net core 2.0中播放Hangfire数据库

时间:2017-12-05 21:03:44

标签: asp.net-core asp.net-core-2.0 hangfire hangfire.ninject

我试图整合" Hangfire"到我现有的ASP.NET Core应用程序。查看文档,如果我们想要使用SQL Server存储选项,则需要创建Hangfire数据库。但是每次我们启动新服务器时创建数据库都会非常烦人。

有没有一种方法可以在启用SQL存储选项的情况下为DB编制种子,而不是像这样的启动类?

 services.AddHangfire(options =>
            options.UseSqlServerStorage(Configuration["HangfireConnection"]));

1 个答案:

答案 0 :(得分:0)

一个好的解决方案是将这种担忧隔离到某些TSQL脚本中,并在应用程序启动时或在运行测试之前(根据您的方案)运行那些脚本,但是我之前使用的一种快速解决方案是这样的{ {3}}。

public class HangfireContext : DbContext
{
    public HangfireContext(DbContextOptions options)
        : base(options)
    {
        Database.EnsureCreated();
    }
}


public class Startup
{

   public void ConfigureServices(IServiceCollection services)
   {
      var connectionString = Configuration.GetConnectionString("HangfireConnectionString");
      var optionsBuilder = new DbContextOptionsBuilder<HangfireContext>();
      optionsBuilder.UseSqlServer(connectionString);
      var hangfireDbContext = new HangfireContext(optionsBuilder.Options);

      services.AddHangfire(config =>
                config.UseSqlServerStorage(connectionString));
   }
}