到目前为止,我一直在使用自动迁移来从我的模型更新我的数据库。我现在已经使用dbContext()
数据库连接字符串更新了web.config
构造函数,以根据用户/公司动态设置连接字符串上下文。这是通过从另一个数据库查找详细信息来构建的。
这一切都很有效,直到我对模型进行更改。我无法再从程序包管理器控制台运行update-database
来更新我的数据库,因为代码中没有对数据库实例的引用。
我现在如何对数据库进行更改?
public MyContext() : base(ConnectionString())
{
}
private static string ConnectionString()
{
SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder();
sqlBuilder.DataSource = CurrentCompany.DataSource;
sqlBuilder.InitialCatalog = CurrentCompany.InitialCatalog;
sqlBuilder.PersistSecurityInfo = true;
sqlBuilder.IntegratedSecurity = true;
sqlBuilder.MultipleActiveResultSets = true;
return sqlBuilder.ToString();
}
答案 0 :(得分:2)
您可以在第一次数据库调用之前添加以下行:
Database.SetInitializer<MyContext>(new MigrateDatabaseToLatestVersion<MyContext, MyContextConfiguration>());
它将在MyContext创建时执行所有挂起(或自动)迁移。