如何将hangfire与现有的实体框架代码第一个应用程序一起使用?

时间:2016-05-22 13:32:41

标签: c# asp.net-mvc entity-framework ef-code-first hangfire

我正在使用实体框架代码第一种方法的应用程序,并且也支持子域,意味着基于子域它为该客户端获取连接字符串(每个客户端都有单独的数据库)。为了实现后台作业,我正在使用 Hangfire 。目前使用单独的数据库进行Hangfire。

现在我的要求是我需要将这个Hangfire表创建到客户端数据库。为此,我将客户端数据库的连接字符串传递给hangfire:

GlobalConfiguration.Configuration.UseSqlServerStorage("connection string");

但问题是实体框架试图放弃我的数据库,我不想这样做,因为它已经有了客户端的有效数据

public DataContext(string connectionString): base(connectionString){
        Database.SetInitializer(new DataSeeder());
        Database.Initialize(false);
        Configuration.ProxyCreationEnabled = false;
    }

上面是我的Datacontext的构造函数。

播种机是这样的:

public class DataSeeder : DropCreateDatabaseIfModelChanges<DataContext>{

}

1 个答案:

答案 0 :(得分:0)

我注意到在添加了Hangfire并发出“dnx ef migrations add”并检查生成的迁移文件后,它还想删除我的Identity表。

我只是编辑了生成的迁移c#脚本,并从“Up”方法中删除了这些命令,一切正常。也许尝试这样可以在执行数据库更新之前解决您的问题。