连接到MVC Web应用程序中的多个数据库
问题描述:
如何连接到用C#编写的.NET MVC Web应用程序的不同数据库?连接到MVC Web应用程序中的多个数据库
这里数据库表的结构保持不变。所有更改都是数据库名称。那么如何手动连接到数据库或使用修改连接字符串?
诀窍是使用相同的代码。根据我希望从不同数据库显示数据的URL。所以视图和控制器(几乎)有单个代码w.r.t.该模型。
-Datte
答
下面是一个非常简单的方法来做我认为你问的东西。在你的web.config文件,你可以定义你的两个连接字符串:
<connectionStrings>
<add name="DevelopmentDB" providerName="System.Data.SqlClient"
connectionString="Data Source=sql-dev.example.com;Initial Catalog=MyDB;User Id=MyUser;Password=MyPassword" />
<add name="ProductionDB" providerName="System.Data.SqlClient"
connectionString="Data Source=sql-prod.example.com;Initial Catalog=MyDB;User Id=MyUser;Password=MyPassword" />
</connectionStrings>
然后,在你(基地)控制器,你可以创建一个返回基于此请求的连接字符串,如方法:
internal string ConnectionString
{
get
{
return getConnectionStringByServerName(this.HttpContext.Request.ServerVariables["SERVER_NAME"]);
}
}
internal string getConnectionStringByServerName(string serverName)
{
if (serverName.Equals("localhost"))
{
return WebConfigurationManager.ConnectionStrings["DevelopmentDB"].ConnectionString;
}
else
{
return WebConfigurationManager.ConnectionStrings["ProductionDB"].ConnectionString;
}
}
你当然可以改变最有意义的选择标准。
祝你好运!
你如何连接到数据库? ADO.NET? LINQ to SQL?实体框架? NHibernate的?还有别的吗? – jrista 2009-10-27 05:40:50
是的,我正在使用实体框架... – dattebayo 2009-10-27 06:11:16