我正在使用实体框架代码第一种方法的应用程序,并且也支持子域,意味着基于子域它为该客户端获取连接字符串(每个客户端都有单独的数据库)。为了实现后台作业,我正在使用 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>{
}
答案 0 :(得分:0)
我注意到在添加了Hangfire并发出“dnx ef migrations add”并检查生成的迁移文件后,它还想删除我的Identity表。
我只是编辑了生成的迁移c#脚本,并从“Up”方法中删除了这些命令,一切正常。也许尝试这样可以在执行数据库更新之前解决您的问题。