2

我已经构建了一个多租户 MVC4 应用程序,该应用程序根据主机名使用特定数据库。

该网站绑定到我们所有客户的主机名:

  • 如果访问者浏览“domain1.com”,则使用“domain1.com”数据库。
  • 如果访问者浏览“domain2.com”,则使用“domain2.com”数据库。

自动迁移通常放在 Application_Start() 中:

Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyProject.Models.MyProjectContext, MyProject.Migrations.Configuration>());

这将在应用程序启动时运行迁移。但是,由于我的应用程序响应多个主机名,因此只会迁移一个数据库。当我切换到另一个主机名时,该数据库不会迁移,因为应用程序已经加载到服务器上的内存中。

我通过将上面的代码行移动到 Session_Start() 解决了这个问题。

这是好习惯吗?有更好的解决方案吗?

提前致谢,

安德烈亚斯

4

0 回答 0