我试图整合" Hangfire"到我现有的ASP.NET Core应用程序。查看文档,如果我们想要使用SQL Server存储选项,则需要创建Hangfire数据库。但是每次我们启动新服务器时创建数据库都会非常烦人。
有没有一种方法可以在启用SQL存储选项的情况下为DB编制种子,而不是像这样的启动类?
services.AddHangfire(options =>
options.UseSqlServerStorage(Configuration["HangfireConnection"]));
答案 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));
}
}