【问题标题】:Choosing which database to use when starting the application选择启动应用程序时使用的数据库
【发布时间】:2022-01-15 19:27:27
【问题描述】:

我正在开发一个 Web 应用程序,将由 3 个部门使用,每个部门都有自己的数据库,因为如果出现问题(比如上周发生的人类操作不当...... .) 而且我必须为一个部门恢复数据库,我不想影响其他 2 个部门。

我想要做的是,当我的应用程序为 Dept-A 启动时,我希望应用程序使用 Database-A,以此类推用于 Dept-B 和 Dept-C。

我知道可以在 Page_Init 代码中将数据源设置为正确的数据库以在当前页面的代码中使用,但是在我的 ASPX 页面中,我所有的 SqlDatasource 都有一个指向 web.config 的 ConnectionString,这就是正在阻止我。如果在启动时我可以动态设置要在 webconfig 连接字符串中使用的数据库名称,那将很容易,但遗憾的是这似乎不可能。

目前我的解决方案是将我的应用部署到 3 个不同的网站,每个网站都有相同的代码,但它们的 webconfig 将包含适合它们的数据库。

这可行,但我只是想确定没有更简单的解决方案。

谢谢!

【问题讨论】:

  • 多租户应用程序不能解决您的问题吗?
  • @JordyDeweer:多租户应用是解决这个问题的方法
  • 致 OP:您不想“在启动时动态设置”,或者更确切地说,您希望“启动”表示每个请求的开始。假设您稍微更改应用程序以使其成为多租户,请阅读您有哪些选项。这绝对是可能的,我们有适用于数千名租户的应用程序。
  • 感谢您的回答,我第一次听说多租户应用程序。事实上,我的应用程序仍在开发中,但非常先进,已经被一个部门使用。起初,我在许多表中使用带有 ID_DEP 的单个数据库来分隔数据。但就像我说的,我希望为每个部门分开数据库。我搜索了一个关于如何构建多租户应用程序但没有成功的示例...我在 ASP NET 中使用 VS 2017 和 SQL Server,我在哪里可以找到我需要为此做的更改?谢谢。

标签: asp.net database web-config


【解决方案1】:

使用多租户应用。这样,您可以为每个租户设置不同的连接字符串。

对于一个简单的应用程序,它几乎不需要修改。您也可以使用 ABP 之类的框架。

【讨论】:

    猜你喜欢
    • 2021-09-12
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    • 2021-08-07
    • 2020-11-21
    • 1970-01-01
    • 2015-03-20
    • 1970-01-01
    相关资源
    最近更新 更多