dat*_*ayo 2 .net c# asp.net-mvc entity-framework database-connection
如何连接到用C#编写的.NET MVC Web应用程序的不同数据库?
这里数据库表的结构保持不变.所有更改都是数据库名称.那么如何手动连接数据库或使用修改连接字符串?
诀窍是使用相同的代码.根据URL,我希望从不同的数据库显示数据.因此,视图和控制器(几乎)在模型中具有单个代码.
-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>
Run Code Online (Sandbox Code Playgroud)
然后,在(基本)控制器中,您可以创建一个方法,根据请求返回相应的连接字符串,例如:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
您当然可以更改最合理的选择标准.
祝好运!
| 归档时间: |
|
| 查看次数: |
5317 次 |
| 最近记录: |