如何为用 C# 编写的 .NET MVC Web 应用程序连接到不同的数据库?
这里数据库表的结构保持不变。所有改变的只是数据库名称。那么如何手动连接到数据库或使用修改连接字符串呢?
诀窍是使用相同的代码。根据 URL,我希望显示来自不同数据库的数据。所以 View 和 Controller (几乎)只有单一代码 w.r.t.该模型。
-数据
最佳答案
这是一种非常简单的方法来完成我认为您要问的事情。在您的 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>
然后,在您的(基本) Controller 中,您可以创建一个根据请求返回适当连接字符串的方法,例如:
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;
}
}
您当然可以根据最合理的情况更改选择标准。
祝你好运!
关于c# - 在 MVC Web 应用程序中连接到多个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1628931/