【发布时间】:2012-07-22 00:51:03
【问题描述】:
我的 ASP.Net MVC 应用程序必须在运行时连接到多个数据库。我可以重载我的类以在运行时接受连接字符串,如下所示
class MyClassDBContext:DbContext
{
public MyClassDBContext(string str) : base(str)
{
this.Database.Connection.ConnectionString = str;
}
}
目前,我正在从数据库表中检索此连接字符串。我的工作流程如下
- 网站使用存储在 web.config
- 网站查询默认数据库以获取连接字符串 其他数据库。
- 网站通过提供连接连接到其他数据库 运行时的字符串
我现在面临的问题是保持我的代码干净。每次我需要数据库 2 的连接字符串时,我都必须在默认数据库中查找它。有没有更清洁的方法来做到这一点?我考虑将连接字符串存储在配置文件数据中,但我不确定这是否是个好主意。我网站的每个用户最多需要连接到 2-3 个不同的数据库,具体取决于他们的凭据。
【问题讨论】:
-
为什么不在 web.config 中定义所有连接字符串?
-
@m0s - 不同的客户端连接到不同的数据库。我正在提前考虑,觉得随着客户数量的增加,web.config 会变得混乱。
-
确保您正在加密存储在默认数据库中的连接字符串...顺便说一句,我正在用我的桌面应用程序做同样的事情,并且经历了想知道是否有更好的方法,但想不出一个,所以我很想看看是否有人可以发布更好的解决方案......
-
@Dean K - 是的,我已经加密了我的连接字符串。感谢您将其添加为评论,因为这是许多开发人员跳过的非常有价值的一步
标签: c# asp.net-mvc-3 entity-framework