我正在开发一个MVC 4网站。它应该允许用户根据View中的用户选择选择要连接的数据库。所有数据库都具有相同的表结构和架构等。
我在Web.config文件中定义了一个数据库ConnectionString,允许连接到第一个数据库。
<connectionStrings>
<add name="DBConnectionString" connectionString="Data Source=DATABSE_SERVER;Initial Catalog=DATABASE_NAME;Persist Security Info=True;User ID=USERNAME;Password=PASSWORD" providerName="System.Data.SqlClient" />
</connectionStrings>
我还使用Linq DataContext初始化与数据库的连接。表映射全部由Linq to SQL在MVC 4中自动生成。
public NEMP_DataDataContext() :
base(global::System.Configuration.ConfigurationManager.ConnectionStrings["DBConnectionString"].ConnectionString, mappingSource)
{
OnCreated();
}
实现这一目标的最佳方法是什么?
答案 0 :(得分:0)
答案 1 :(得分:0)
首先,您应该有一个存储来获取所有数据库连接。 也许存储是一个xml文件或一个简单的数据库。 但是你需要实现如何获取连接字符串。
如果您在应用程序中使用了EntityFramework作为dataconext。 您可以使用类似下面代码的构造函数:
public ApplicationDbContext(string nameOfConnection)
: base(nameOfConnection)
{
this.Configuration.ProxyCreationEnabled = true;
this.Configuration.LazyLoadingEnabled = true;
}
请调用1并获取nameOfConneciton,然后调用2以初始化DbContext。
答案 2 :(得分:0)
在LINQ to SQL中,您只需使用连接字符串创建Context:
DataContext myContext = new DataContext(customConnectionString);
你不必担心关闭它们或任何东西。 SQL Server正在为您处理所有这些。因此,您只需稍微调整连接字符串(数据库名称),并根据您需要使用上下文的每个页面中的任何变量创建新的上下文。
答案 3 :(得分:-1)
我不确定我是否完全理解你的问题。但我假设你问我们你想让用户选择他们想要连接的数据库。然后设置连接字符串。
这是我的解决方案,例如,如果您有5个数据库供用户选择。您将这5个连接字符串写入web.config。然后制作类似下拉列表或单选按钮的东西,让用户选择数据库。然后做一个if语句。例如,如果选择了第一个单选按钮,则
String connection string=connection.string["the name of connection string in web.confug"];
我希望这可以帮到你